diff --git a/src/base/logging.cc b/src/base/logging.cc
index 466868e..718d52a 100644
--- a/src/base/logging.cc
+++ b/src/base/logging.cc
@@ -558,6 +558,30 @@
 #endif
 }
 
+#if defined(OFFICIAL_BUILD)
+int GetMinLogLevel() {
+  return LOG_NUM_SEVERITIES;
+}
+
+bool ShouldCreateLogMessage(int /*severity*/) {
+  return false;
+}
+
+int GetVlogVerbosity() {
+  return LOG_INFO - GetMinLogLevel();
+}
+
+int GetVlogLevelHelper(const char* /*file*/, size_t /*N*/) {
+  return GetVlogVerbosity();
+}
+
+void SetLogItems(bool /*enable_process_id*/, bool /*enable_thread_id*/,
+                 bool /*enable_timestamp*/, bool /*enable_tickcount*/) {}
+
+void SetLogPrefix(const char* /*prefix*/) {}
+
+#else  // defined(OFFICIAL_BUILD)
+
 int GetMinLogLevel() {
   return g_min_log_level;
 }
@@ -600,6 +624,7 @@
          base::ContainsOnlyChars(prefix, "abcdefghijklmnopqrstuvwxyz"));
   g_log_prefix = prefix;
 }
+#endif  // defined(OFFICIAL_BUILD)
 
 void SetShowErrorDialogs(bool enable_dialogs) {
   show_error_dialogs = enable_dialogs;
diff --git a/src/base/logging.h b/src/base/logging.h
index 1c0d669..da6384d 100644
--- a/src/base/logging.h
+++ b/src/base/logging.h
@@ -411,8 +411,13 @@
 // As special cases, we can assume that LOG_IS_ON(FATAL) always holds. Also,
 // LOG_IS_ON(DFATAL) always holds in debug mode. In particular, CHECK()s will
 // always fire if they fail.
+
+#if defined(OFFICIAL_BUILD)
+#define LOG_IS_ON(severity) false
+#else  // defined(OFFICIAL_BUILD)
 #define LOG_IS_ON(severity) \
   (::logging::ShouldCreateLogMessage(::logging::LOG_##severity))
+#endif  // defined(OFFICIAL_BUILD)
 
 // We can't do any caching tricks with VLOG_IS_ON() like the
 // google-glog version since it requires GCC extensions.  This means
diff --git a/src/base/message_loop/message_pump_io_starboard.cc b/src/base/message_loop/message_pump_io_starboard.cc
index cfe3955..767dd1b 100644
--- a/src/base/message_loop/message_pump_io_starboard.cc
+++ b/src/base/message_loop/message_pump_io_starboard.cc
@@ -145,10 +145,10 @@
   }
 
   // Set current interest mask and waiter for this event.
-  bool result =
-      SbSocketWaiterAdd(waiter_, socket, controller, OnSocketWaiterNotification,
-                        interests, persistent);
-  DCHECK(result);
+  if (!SbSocketWaiterAdd(waiter_, socket, controller,
+                         OnSocketWaiterNotification, interests, persistent)) {
+    return false;
+  }
 
   controller->Init(socket, persistent);
   controller->set_watcher(delegate);
diff --git a/src/base/test/main_hook.cc b/src/base/test/main_hook.cc
index b5cafca..0478d99 100644
--- a/src/base/test/main_hook.cc
+++ b/src/base/test/main_hook.cc
@@ -9,10 +9,6 @@
 #include "base/command_line.h"
 #endif
 
-#if defined(COBALT_BUILD_TYPE_GOLD)
-#error You cannot build unit tests in gold builds.
-#endif
-
 #if defined(__LB_SHELL__) || defined(COBALT)
 base::AtExitManager* platform_at_exit_manager_;
 
diff --git a/src/cobalt/CHANGELOG.md b/src/cobalt/CHANGELOG.md
index 45f312d..6bd4d82 100644
--- a/src/cobalt/CHANGELOG.md
+++ b/src/cobalt/CHANGELOG.md
@@ -49,7 +49,8 @@
  - **Added support for Device Authentication URL signing.**
 
    Cobalt will now add URL parameters signed with the device's secret key and
-   certification scope to the initial URL.
+   certification scope to the initial URL.  For more information, see
+   [doc/device_authentication.md](doc/device_authentication.md).
 
  - **Updated Chromium net and base libraries from m25 to m70.**
 
diff --git a/src/cobalt/accessibility/accessibility.gyp b/src/cobalt/accessibility/accessibility.gyp
deleted file mode 100644
index cb497fd..0000000
--- a/src/cobalt/accessibility/accessibility.gyp
+++ /dev/null
@@ -1,39 +0,0 @@
-# Copyright 2017 The Cobalt Authors. All Rights Reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specif
-
-{
-  'targets': [
-    {
-      'target_name': 'accessibility',
-      'type': 'static_library',
-      'sources': [
-        'internal/live_region.cc',
-        'internal/live_region.h',
-        'internal/text_alternative_helper.cc',
-        'internal/text_alternative_helper.h',
-        'screen_reader.cc',
-        'screen_reader.h',
-        'starboard_tts_engine.cc',
-        'starboard_tts_engine.h',
-        'text_alternative.cc',
-        'text_alternative.h',
-        'tts_engine.h',
-        'tts_logger.h',
-      ],
-      'dependencies': [
-        '<(DEPTH)/cobalt/base/base.gyp:base',
-        '<(DEPTH)/cobalt/dom/dom.gyp:dom',
-      ],
-    },
-  ]
-}
diff --git a/src/cobalt/accessibility/accessibility_test.gyp b/src/cobalt/accessibility/accessibility_test.gyp
deleted file mode 100644
index acede3d..0000000
--- a/src/cobalt/accessibility/accessibility_test.gyp
+++ /dev/null
@@ -1,57 +0,0 @@
-# Copyright 2017 The Cobalt Authors. All Rights Reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specif
-
-{
-  'targets': [
-    {
-      'target_name': 'accessibility_test',
-      'type': '<(gtest_target_type)',
-      'sources': [
-        'screen_reader_tests.cc',
-        'internal/live_region_test.cc',
-        'internal/text_alternative_helper_test.cc',
-      ],
-      'dependencies': [
-        '<(DEPTH)/cobalt/accessibility/accessibility.gyp:accessibility',
-        '<(DEPTH)/cobalt/base/base.gyp:base',
-        '<(DEPTH)/cobalt/browser/browser.gyp:browser',
-        '<(DEPTH)/cobalt/test/test.gyp:run_all_unittests',
-        '<(DEPTH)/testing/gmock.gyp:gmock',
-        '<(DEPTH)/testing/gtest.gyp:gtest',
-        'accessibility_test_data',
-      ],
-    },
-    {
-      'target_name': 'accessibility_test_data',
-      'type': 'none',
-      'variables': {
-        'content_test_input_files': [
-          '<(DEPTH)/cobalt/accessibility/testdata/',
-        ],
-        'content_test_output_subdir': 'cobalt/accessibility/testdata/',
-      },
-      'includes': ['<(DEPTH)/starboard/build/copy_test_data.gypi'],
-    },
-    {
-      'target_name': 'accessibility_test_deploy',
-      'type': 'none',
-      'dependencies': [
-        'accessibility_test',
-      ],
-      'variables': {
-        'executable_name': 'accessibility_test',
-      },
-      'includes': [ '<(DEPTH)/starboard/build/deploy.gypi' ],
-    },
-  ]
-}
diff --git a/src/cobalt/accessibility/internal/live_region.cc b/src/cobalt/accessibility/internal/live_region.cc
deleted file mode 100644
index 40407be..0000000
--- a/src/cobalt/accessibility/internal/live_region.cc
+++ /dev/null
@@ -1,130 +0,0 @@
-// Copyright 2017 The Cobalt Authors. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#include "cobalt/accessibility/internal/live_region.h"
-
-#include <bitset>
-#include <memory>
-#include <vector>
-
-#include "base/basictypes.h"
-#include "base/memory/ptr_util.h"
-#include "base/strings/string_split.h"
-#include "cobalt/base/tokens.h"
-#include "cobalt/dom/element.h"
-
-namespace cobalt {
-namespace accessibility {
-namespace internal {
-namespace {
-typedef std::bitset<8> RelevantMutationsBitset;
-
-// Default value for the aria-relevant property per the spec.
-// https://www.w3.org/TR/wai-aria/states_and_properties#aria-relevant
-const char kDefaultAriaRelevantValue[] = "additions text";
-
-bool HasValidLiveRegionProperty(const scoped_refptr<dom::Element>& element) {
-  std::string aria_live_attribute =
-      element->GetAttribute(base::Tokens::aria_live().c_str()).value_or("");
-
-  return aria_live_attribute == base::Tokens::assertive() ||
-         aria_live_attribute == base::Tokens::polite();
-}
-
-RelevantMutationsBitset GetRelevantMutations(
-    const scoped_refptr<dom::Element>& element) {
-  RelevantMutationsBitset bitset;
-
-  std::string aria_relevant_attribute =
-      element->GetAttribute(base::Tokens::aria_relevant().c_str())
-          .value_or(kDefaultAriaRelevantValue);
-  std::vector<std::string> tokens =
-      base::SplitString(aria_relevant_attribute, base::kWhitespaceASCII,
-                        base::KEEP_WHITESPACE, base::SPLIT_WANT_NONEMPTY);
-  for (size_t i = 0; i < tokens.size(); ++i) {
-    if (tokens[i] == base::Tokens::additions()) {
-      bitset.set(LiveRegion::kMutationTypeAddition);
-    } else if (tokens[i] == base::Tokens::removals()) {
-      bitset.set(LiveRegion::kMutationTypeRemoval);
-    } else if (tokens[i] == base::Tokens::text()) {
-      bitset.set(LiveRegion::kMutationTypeText);
-    } else if (tokens[i] == base::Tokens::all()) {
-      bitset.set();
-    } else {
-      DLOG(WARNING) << "Unexpected value for aria-relevant attribute: "
-                    << tokens[i];
-    }
-  }
-  return bitset;
-}
-}  // namespace
-
-// static
-std::unique_ptr<LiveRegion> LiveRegion::GetLiveRegionForNode(
-    const scoped_refptr<dom::Node>& node) {
-  if (!node) {
-    return std::unique_ptr<LiveRegion>(nullptr);
-  }
-  scoped_refptr<dom::Element> element = node->AsElement();
-  if (element && HasValidLiveRegionProperty(element)) {
-    return base::WrapUnique(new LiveRegion(element));
-  }
-  return GetLiveRegionForNode(node->parent_node());
-}
-
-bool LiveRegion::IsAssertive() const {
-  base::Optional<std::string> aria_live_attribute =
-      root_->GetAttribute(base::Tokens::aria_live().c_str());
-  if (!aria_live_attribute) {
-    NOTREACHED();
-    return false;
-  }
-  return *aria_live_attribute == base::Tokens::assertive();
-}
-
-bool LiveRegion::IsMutationRelevant(MutationType mutation_type) const {
-  RelevantMutationsBitset bitset = GetRelevantMutations(root_);
-  return bitset.test(mutation_type);
-}
-
-bool LiveRegion::IsAtomic(const scoped_refptr<dom::Node>& node) const {
-  // Stop searching if we go past the live region's root node. The default is
-  // non-atomic.
-  if (!node || node == root_->parent_node()) {
-    return false;
-  }
-  if (node->IsElement()) {
-    scoped_refptr<dom::Element> element = node->AsElement();
-    // Search ancestors of the changed element to determine if this change is
-    // atomic or not, per the algorithm described in the spec.
-    // https://www.w3.org/TR/wai-aria/states_and_properties#aria-atomic
-    base::Optional<std::string> aria_atomic_attribute =
-        element->GetAttribute(base::Tokens::aria_atomic().c_str());
-    if (aria_atomic_attribute) {
-      if (*aria_atomic_attribute == base::Tokens::true_token()) {
-        return true;
-      } else if (*aria_atomic_attribute == base::Tokens::false_token()) {
-        return false;
-      } else {
-        DLOG(WARNING) << "Unexpected token for aria-atomic: "
-                      << *aria_atomic_attribute;
-      }
-    }
-  }
-  return IsAtomic(node->parent_node());
-}
-
-}  // namespace internal
-}  // namespace accessibility
-}  // namespace cobalt
diff --git a/src/cobalt/accessibility/internal/live_region.h b/src/cobalt/accessibility/internal/live_region.h
deleted file mode 100644
index 7a995ac..0000000
--- a/src/cobalt/accessibility/internal/live_region.h
+++ /dev/null
@@ -1,82 +0,0 @@
-// Copyright 2017 The Cobalt Authors. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#ifndef COBALT_ACCESSIBILITY_INTERNAL_LIVE_REGION_H_
-#define COBALT_ACCESSIBILITY_INTERNAL_LIVE_REGION_H_
-
-#include <memory>
-#include <string>
-
-#include "cobalt/dom/node.h"
-
-namespace cobalt {
-namespace accessibility {
-namespace internal {
-// Collection of functions to support the implementation of wai-aria Live
-// Regions:
-// https://www.w3.org/TR/2010/WD-wai-aria-20100916/terms#def_liveregion
-class LiveRegion {
- public:
-  // Types of mutation to the DOM subtree that might cause a live region to be
-  // updated, corresponding to the possible values of aria-relevant as
-  // described in:
-  // https://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-relevant
-  enum MutationType {
-    kMutationTypeAddition = 1,  // corresponds to "additions"
-    kMutationTypeRemoval,       // corresponds to "removals"
-    kMutationTypeText,          // corresponds to "text"
-  };
-
-  // Returns a LiveRegion instance describing the live region that this element
-  // is a member of, or NULL if this element is not part of a live region.
-  //
-  // Searches the element's ancestors looking for the first element with a
-  // valid aria-live attribute.
-  static std::unique_ptr<LiveRegion> GetLiveRegionForNode(
-      const scoped_refptr<dom::Node>& node);
-
-  // Returns true if the value of aria-live is "assertive".
-  // https://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-live
-  bool IsAssertive() const;
-
-  // Returns true if this live region should be updated in response to the
-  // specified type of change, based on the value of this element's
-  // aria-relevant property.
-  // https://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-relevant
-  bool IsMutationRelevant(MutationType mutation_type) const;
-
-  // Returns true if changes to this node should result in an atomic update
-  // to its live region, according to the value of the aria-atomic property set
-  // on this node or its ancestors, up to and including the live region root.
-  //
-  // https://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-atomic
-  bool IsAtomic(const scoped_refptr<dom::Node>& node) const;
-
-  // Returns the root of the live region (i.e.) the element that has the
-  // aria-live property set on it.
-  const scoped_refptr<dom::Element>& root() { return root_; }
-
- private:
-  explicit LiveRegion(const scoped_refptr<dom::Element>& root) : root_(root) {}
-
-  // The root element of the live region. That is, the element with a valid
-  // aria-live attribute.
-  scoped_refptr<dom::Element> root_;
-};
-
-}  // namespace internal
-}  // namespace accessibility
-}  // namespace cobalt
-
-#endif  // COBALT_ACCESSIBILITY_INTERNAL_LIVE_REGION_H_
diff --git a/src/cobalt/accessibility/internal/live_region_test.cc b/src/cobalt/accessibility/internal/live_region_test.cc
deleted file mode 100644
index 35e8b7f..0000000
--- a/src/cobalt/accessibility/internal/live_region_test.cc
+++ /dev/null
@@ -1,235 +0,0 @@
-// Copyright 2017 The Cobalt Authors. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#include <memory>
-
-#include "base/memory/ref_counted.h"
-#include "cobalt/accessibility/internal/live_region.h"
-#include "cobalt/dom/element.h"
-#include "cobalt/test/empty_document.h"
-#include "testing/gmock/include/gmock/gmock.h"
-#include "testing/gtest/include/gtest/gtest.h"
-
-namespace cobalt {
-namespace accessibility {
-namespace internal {
-class LiveRegionTest : public ::testing::Test {
- protected:
-  dom::Document* document() { return empty_document_.document(); }
-
-  scoped_refptr<dom::Element> CreateLiveRegion(const char* type) {
-    scoped_refptr<dom::Element> live_region = document()->CreateElement("div");
-    live_region->SetAttribute(base::Tokens::aria_live().c_str(), type);
-    return live_region;
-  }
-
- private:
-  // For posting tasks by any triggered code.
-  base::MessageLoop message_loop_;
-  test::EmptyDocument empty_document_;
-};
-
-TEST_F(LiveRegionTest, GetLiveRegionRoot) {
-  std::unique_ptr<LiveRegion> live_region;
-
-  scoped_refptr<dom::Element> live_region_element =
-      CreateLiveRegion(base::Tokens::polite().c_str());
-  ASSERT_TRUE(live_region_element);
-
-  // GetLiveRegionForNode with the live region root.
-  live_region = LiveRegion::GetLiveRegionForNode(live_region_element);
-  ASSERT_TRUE(live_region);
-  EXPECT_EQ(live_region->root(), live_region_element);
-
-  // GetLiveRegionForNode with a descendent node of a live region.
-  scoped_refptr<dom::Element> child = document()->CreateElement("div");
-  live_region_element->AppendChild(child);
-  live_region = LiveRegion::GetLiveRegionForNode(child);
-  ASSERT_TRUE(live_region);
-  EXPECT_EQ(live_region->root(), live_region_element);
-
-  // Element that is not in a live region.
-  scoped_refptr<dom::Element> not_live = document()->CreateElement("div");
-  live_region = LiveRegion::GetLiveRegionForNode(not_live);
-  EXPECT_FALSE(live_region);
-}
-
-TEST_F(LiveRegionTest, NestedLiveRegion) {
-  scoped_refptr<dom::Element> live_region_element =
-      CreateLiveRegion(base::Tokens::polite().c_str());
-  ASSERT_TRUE(live_region_element);
-
-  scoped_refptr<dom::Element> nested_region_element =
-      CreateLiveRegion(base::Tokens::polite().c_str());
-  ASSERT_TRUE(nested_region_element);
-  live_region_element->AppendChild(nested_region_element);
-
-  // The closest ancestor live region is this element's live region.
-  scoped_refptr<dom::Element> child = document()->CreateElement("div");
-  nested_region_element->AppendChild(child);
-  std::unique_ptr<LiveRegion> live_region =
-      LiveRegion::GetLiveRegionForNode(child);
-  ASSERT_TRUE(live_region);
-  EXPECT_EQ(live_region->root(), nested_region_element);
-
-  // Ignore live regions that are not active.
-  nested_region_element->SetAttribute(base::Tokens::aria_live().c_str(),
-                                      base::Tokens::off().c_str());
-  live_region = LiveRegion::GetLiveRegionForNode(child);
-  ASSERT_TRUE(live_region);
-  EXPECT_EQ(live_region->root(), live_region_element);
-}
-
-TEST_F(LiveRegionTest, LiveRegionType) {
-  std::unique_ptr<LiveRegion> live_region;
-
-  // aria-live="polite"
-  scoped_refptr<dom::Element> polite_element =
-      CreateLiveRegion(base::Tokens::polite().c_str());
-  ASSERT_TRUE(polite_element);
-  live_region = LiveRegion::GetLiveRegionForNode(polite_element);
-  ASSERT_TRUE(live_region);
-  EXPECT_FALSE(live_region->IsAssertive());
-
-  // aria-live="assertive"
-  scoped_refptr<dom::Element> assertive_element =
-      CreateLiveRegion(base::Tokens::assertive().c_str());
-  ASSERT_TRUE(assertive_element);
-  live_region = LiveRegion::GetLiveRegionForNode(assertive_element);
-  ASSERT_TRUE(live_region);
-  EXPECT_TRUE(live_region->IsAssertive());
-
-  // aria-live="off"
-  scoped_refptr<dom::Element> off_element =
-      CreateLiveRegion(base::Tokens::off().c_str());
-  ASSERT_TRUE(off_element);
-  live_region = LiveRegion::GetLiveRegionForNode(off_element);
-  EXPECT_FALSE(live_region);
-
-  // aria-live=<invalid token>
-  scoped_refptr<dom::Element> invalid_element = CreateLiveRegion("banana");
-  ASSERT_TRUE(invalid_element);
-  live_region = LiveRegion::GetLiveRegionForNode(invalid_element);
-  EXPECT_FALSE(live_region);
-}
-
-TEST_F(LiveRegionTest, IsMutationRelevant) {
-  scoped_refptr<dom::Element> live_region_element =
-      CreateLiveRegion(base::Tokens::polite().c_str());
-  ASSERT_TRUE(live_region_element);
-
-  // GetLiveRegionForNode with the live region root.
-  std::unique_ptr<LiveRegion> live_region =
-      LiveRegion::GetLiveRegionForNode(live_region_element);
-  ASSERT_TRUE(live_region);
-  // Default is that additions and text are relevant.
-  EXPECT_TRUE(
-      live_region->IsMutationRelevant(LiveRegion::kMutationTypeAddition));
-  EXPECT_TRUE(live_region->IsMutationRelevant(LiveRegion::kMutationTypeText));
-  EXPECT_FALSE(
-      live_region->IsMutationRelevant(LiveRegion::kMutationTypeRemoval));
-
-  // Only removals are relevant.
-  live_region_element->SetAttribute(base::Tokens::aria_relevant().c_str(),
-                                    "removals");
-  live_region = LiveRegion::GetLiveRegionForNode(live_region_element);
-  ASSERT_TRUE(live_region);
-  EXPECT_FALSE(
-      live_region->IsMutationRelevant(LiveRegion::kMutationTypeAddition));
-  EXPECT_FALSE(live_region->IsMutationRelevant(LiveRegion::kMutationTypeText));
-  EXPECT_TRUE(
-      live_region->IsMutationRelevant(LiveRegion::kMutationTypeRemoval));
-
-  // Removals and additions are relevant.
-  live_region_element->SetAttribute(base::Tokens::aria_relevant().c_str(),
-                                    "removals additions");
-  live_region = LiveRegion::GetLiveRegionForNode(live_region_element);
-  ASSERT_TRUE(live_region);
-  EXPECT_TRUE(
-      live_region->IsMutationRelevant(LiveRegion::kMutationTypeAddition));
-  EXPECT_FALSE(live_region->IsMutationRelevant(LiveRegion::kMutationTypeText));
-  EXPECT_TRUE(
-      live_region->IsMutationRelevant(LiveRegion::kMutationTypeRemoval));
-
-  // An invalid token.
-  live_region_element->SetAttribute(base::Tokens::aria_relevant().c_str(),
-                                    "text dog additions");
-  live_region = LiveRegion::GetLiveRegionForNode(live_region_element);
-  ASSERT_TRUE(live_region);
-  EXPECT_TRUE(
-      live_region->IsMutationRelevant(LiveRegion::kMutationTypeAddition));
-  EXPECT_TRUE(live_region->IsMutationRelevant(LiveRegion::kMutationTypeText));
-  EXPECT_FALSE(
-      live_region->IsMutationRelevant(LiveRegion::kMutationTypeRemoval));
-
-  // "all" token.
-  live_region_element->SetAttribute(base::Tokens::aria_relevant().c_str(),
-                                    "all");
-  live_region = LiveRegion::GetLiveRegionForNode(live_region_element);
-  ASSERT_TRUE(live_region);
-  EXPECT_TRUE(
-      live_region->IsMutationRelevant(LiveRegion::kMutationTypeAddition));
-  EXPECT_TRUE(live_region->IsMutationRelevant(LiveRegion::kMutationTypeText));
-  EXPECT_TRUE(
-      live_region->IsMutationRelevant(LiveRegion::kMutationTypeRemoval));
-}
-
-TEST_F(LiveRegionTest, IsAtomic) {
-  std::unique_ptr<LiveRegion> live_region;
-
-  scoped_refptr<dom::Element> live_region_element =
-      CreateLiveRegion(base::Tokens::polite().c_str());
-  ASSERT_TRUE(live_region_element);
-
-  // Default is non-atomic.
-  live_region = LiveRegion::GetLiveRegionForNode(live_region_element);
-  ASSERT_TRUE(live_region);
-  EXPECT_FALSE(live_region->IsAtomic(live_region_element));
-
-  // aria-atomic=true
-  live_region_element->SetAttribute(base::Tokens::aria_atomic().c_str(),
-                                    "true");
-  live_region = LiveRegion::GetLiveRegionForNode(live_region_element);
-  ASSERT_TRUE(live_region);
-  EXPECT_TRUE(live_region->IsAtomic(live_region_element));
-
-  // aria-atomic=false
-  live_region_element->SetAttribute(base::Tokens::aria_atomic().c_str(),
-                                    "false");
-  live_region = LiveRegion::GetLiveRegionForNode(live_region_element);
-  ASSERT_TRUE(live_region);
-  EXPECT_FALSE(live_region->IsAtomic(live_region_element));
-
-  // Get the value of aria-atomic from ancestor elements.
-  live_region_element->SetAttribute(base::Tokens::aria_atomic().c_str(),
-                                    "true");
-  scoped_refptr<dom::Element> child = document()->CreateElement("div");
-  live_region_element->AppendChild(child);
-  live_region = LiveRegion::GetLiveRegionForNode(live_region_element);
-  ASSERT_TRUE(live_region);
-  EXPECT_TRUE(live_region->IsAtomic(child));
-  EXPECT_TRUE(live_region->IsAtomic(live_region_element));
-
-  // Stop checking ancestors on the first aria-atomic attribute.
-  live_region_element->SetAttribute(base::Tokens::aria_atomic().c_str(),
-                                    "true");
-  child->SetAttribute(base::Tokens::aria_atomic().c_str(), "false");
-  live_region = LiveRegion::GetLiveRegionForNode(live_region_element);
-  ASSERT_TRUE(live_region);
-  EXPECT_FALSE(live_region->IsAtomic(child));
-  EXPECT_TRUE(live_region->IsAtomic(live_region_element));
-}
-}  // namespace internal
-}  // namespace accessibility
-}  // namespace cobalt
diff --git a/src/cobalt/accessibility/internal/text_alternative_helper.cc b/src/cobalt/accessibility/internal/text_alternative_helper.cc
deleted file mode 100644
index f0b543b..0000000
--- a/src/cobalt/accessibility/internal/text_alternative_helper.cc
+++ /dev/null
@@ -1,282 +0,0 @@
-// Copyright 2017 The Cobalt Authors. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#include "cobalt/accessibility/internal/text_alternative_helper.h"
-
-#include <utility>
-
-#include "base/strings/string_split.h"
-#include "cobalt/dom/document.h"
-#include "cobalt/dom/html_element.h"
-#include "cobalt/dom/html_image_element.h"
-#include "cobalt/dom/node_list.h"
-
-namespace cobalt {
-namespace accessibility {
-namespace internal {
-namespace {
-// Helper class that inserts a base::Token into a base::hash_set during the
-// class's lifetime.
-class ScopedIdSetMember {
- public:
-  // Adds |token| into |hash_set| for the duration of this class instance's
-  // lifetime. If |token| is an empty string, it doesn't get added to the set.
-  //
-  // TextAlternativeHelper::visited_element_ids_ is used to keep track of a set
-  // of element ids that have been visited during the current computation to
-  // ensure that we do not follow any ID reference loops. When
-  // AppendTextAlternative is called, the ID of that element is pushed into the
-  // set using this helper class, so that the ID will be popped back out of the
-  // set which allows us to re-visit that element in a non-recursive manner, if
-  // necessary.
-  ScopedIdSetMember(base::hash_set<base::Token>* hash_set,
-                    const base::Token& token)
-      : hash_set_(hash_set) {
-    // Ignore empty tokens.
-    if (SbStringGetLength(token.c_str()) > 0) {
-      DCHECK(hash_set_->find(token) == hash_set_->end());
-      iterator_pair_ = hash_set_->insert(token);
-      DCHECK(iterator_pair_.second);
-    } else {
-      // Ensure iterator_pair_ is initialized.
-      iterator_pair_ = std::make_pair(hash_set_->end(), false);
-    }
-  }
-  ~ScopedIdSetMember() {
-    if (iterator_pair_.second) {
-      hash_set_->erase(iterator_pair_.first);
-    }
-  }
-
- private:
-  base::hash_set<base::Token>* hash_set_;
-  std::pair<base::hash_set<base::Token>::iterator, bool> iterator_pair_;
-};
-
-// Look up an element whose id is |id| in the document that |element| is in.
-scoped_refptr<dom::Element> GetElementById(
-    const scoped_refptr<dom::Element>& element, const std::string& id) {
-  // TODO: If referenced elements tend to be close to the referencing element,
-  // it may be more efficient to do a breadth-first search starting from
-  // |element|.
-  dom::Document* document = element->node_document();
-  scoped_refptr<dom::Element> target_element = document->GetElementById(id);
-  DLOG_IF(WARNING, !target_element)
-      << "Could not find aria-labelledby target: " << id;
-  return target_element;
-}
-}  // namespace
-
-void TextAlternativeHelper::AppendTextAlternative(
-    const scoped_refptr<dom::Node>& node) {
-  DCHECK(node);
-  // https://www.w3.org/TR/2014/REC-wai-aria-implementation-20140320/#mapping_additional_nd_te
-  // 5.6.1.3. Text Alternative Computation
-
-  if (node->IsText()) {
-    // Rule 3D
-    // Get the contents of the text node.
-    if (node->text_content()) {
-      AppendTextIfNonEmpty(*node->text_content());
-    }
-    return;
-  }
-
-  scoped_refptr<dom::Element> element = node->AsElement();
-  if (!element) {
-    // Since this is neither a Text or Element, ignore it.
-    return;
-  }
-
-  if (visited_element_ids_.find(element->id()) != visited_element_ids_.end()) {
-    DLOG(INFO) << "Skipping element to prevent reference loop: "
-               << element->id();
-    return;
-  }
-
-  ScopedIdSetMember scoped_id_set_member(&visited_element_ids_, element->id());
-
-  // Rule 1
-  // Skip hidden elements unless the author specifies to use them via an
-  // aria-labelledby or aria-describedby being used in the current computation.
-  if (!in_labelled_by_or_described_by_ && IsAriaHidden(element)) {
-    return;
-  }
-
-  // Rule 2A (first bullet point)
-  // The aria-labelledby attribute takes precedence as the element's text
-  // alternative unless this computation is already occurring as the result of a
-  // recursive aria-labelledby declaration.
-  if (!in_labelled_by_or_described_by_) {
-    if (TryAppendFromLabelledByOrDescribedBy(element,
-                                             base::Tokens::aria_labelledby())) {
-      return;
-    }
-  }
-
-  // Rule 2A (second bullet point)
-  // If aria-labelledby is empty or undefined, the aria-label attribute, which
-  // defines an explicit text string, is used. However, if this computation is
-  // already occurring as the result of a recursive text alternative computation
-  // and the current element is an embedded control as defined in rule 2B,
-  // ignore the aria-label attribute and skip directly to rule 2B.
-  //
-  // Note: Cobalt doesn't support the embedded controls defined in rule 2B, so
-  // just get the alternative text from the label, if it exists.
-  if (TryAppendFromLabel(element)) {
-    return;
-  }
-
-  // Rule 2A (third bullet point)
-  // If aria-labelledby and aria-label are both empty or undefined, and if the
-  // element is not marked as presentational (role="presentation", check for the
-  // presence of an equivalent host language attribute or element for
-  // associating a label, and use those mechanisms to determine a text
-  // alternative. For example, in HTML, the img element's alt attribute defines
-  // a label string and the label element references the form element it labels.
-  //
-  // This implementation does not support the "role" attribute, so just get the
-  // "alt" property, if this is an element that supports it
-  if (TryAppendFromAltProperty(element)) {
-    return;
-  }
-
-  // Rule 2B
-  // Cobalt does not support the controls described in this step, so skip it.
-
-  // Rule 2C
-  // Otherwise, if the attributes checked in rules A and B didn't provide
-  // results, text is collected from descendant content if the current element's
-  // role allows "Name From: contents." The text alternatives for child nodes
-  // will be concatenated, using this same set of rules. This same rule may
-  // apply to a child, which means the computation becomes recursive and can
-  // result in text being collected in all the nodes in this subtree, no matter
-  // how deep they are. However, any given descendant subtree may instead
-  // collect their part of the text alternative from the preferred markup
-  // described in A and B above. These author-specified attributes are assumed
-  // to provide the correct text alternative for the entire subtree. All in all,
-  // the node rules are applied consistently as text alternatives are collected
-  // from descendants, and each containing element in those descendants may or
-  // may not allow their contents to be used. Each node in the subtree is
-  // consulted only once. If text has been collected from a child node, and is
-  // referenced by another IDREF in some descendant node, then that second, or
-  // subsequent, reference is not followed. This is done to avoid infinite
-  // loops.
-  //
-  // The "role" attribute is not supported, so ignore it. Recurse through
-  // children and concatenate text alternatives.
-  scoped_refptr<dom::NodeList> children = element->child_nodes();
-  for (int i = 0; i < children->length(); ++i) {
-    scoped_refptr<dom::Node> child = children->Item(i);
-    AppendTextAlternative(child);
-  }
-
-  // 5.6.1.2. Description Compution
-  // If aria-describedby is present, user agents MUST compute the accessible
-  // description by concatenating the text alternatives for nodes referenced by
-  // an aria-describedby attribute on the current node. The text alternatives
-  // for the referenced nodes are computed using a number of methods.
-  if (!in_labelled_by_or_described_by_) {
-    TryAppendFromLabelledByOrDescribedBy(element,
-                                         base::Tokens::aria_describedby());
-  }
-}
-
-std::string TextAlternativeHelper::GetTextAlternative() {
-  return base::JoinString(alternatives_, " ");
-}
-
-bool TextAlternativeHelper::IsAriaHidden(
-    const scoped_refptr<dom::Element>& element) {
-  if (!element) {
-    return false;
-  }
-  base::Optional<std::string> aria_hidden_attribute =
-      element->GetAttribute(base::Tokens::aria_hidden().c_str());
-  if (aria_hidden_attribute.value_or("") == base::Tokens::true_token()) {
-    return true;
-  }
-  return IsAriaHidden(element->parent_element());
-}
-
-bool TextAlternativeHelper::TryAppendFromLabelledByOrDescribedBy(
-    const scoped_refptr<dom::Element>& element, const base::Token& token) {
-  DCHECK(!in_labelled_by_or_described_by_);
-  base::Optional<std::string> attributes = element->GetAttribute(token.c_str());
-  // If aria-labelledby is empty or undefined, the aria-label attribute ... is
-  // used (defined below).
-  std::vector<std::string> ids =
-      base::SplitString(attributes.value_or(""), base::kWhitespaceASCII,
-                        base::KEEP_WHITESPACE, base::SPLIT_WANT_NONEMPTY);
-  const size_t current_num_alternatives = alternatives_.size();
-  if (!ids.empty()) {
-    in_labelled_by_or_described_by_ = true;
-    for (int i = 0; i < ids.size(); ++i) {
-      if (visited_element_ids_.find(base::Token(ids[i])) !=
-          visited_element_ids_.end()) {
-        DLOG(WARNING) << "Skipping reference to ID: " << ids[i]
-                      << " to prevent reference loop.";
-        continue;
-      }
-      scoped_refptr<dom::Element> target_element =
-          GetElementById(element, ids[i]);
-      if (!target_element) {
-        DLOG(WARNING) << "Could not find " << token.c_str()
-                      << " target: " << ids[i];
-        continue;
-      }
-      AppendTextAlternative(target_element);
-    }
-    in_labelled_by_or_described_by_ = false;
-  }
-  // Check if any of these recursive calls to AppendTextAlternative actually
-  // ended up appending something.
-  return current_num_alternatives != alternatives_.size();
-}
-
-bool TextAlternativeHelper::TryAppendFromLabel(
-    const scoped_refptr<dom::Element>& element) {
-  base::Optional<std::string> label_attribute =
-      element->GetAttribute(base::Tokens::aria_label().c_str());
-  return AppendTextIfNonEmpty(label_attribute.value_or(""));
-}
-
-bool TextAlternativeHelper::TryAppendFromAltProperty(
-    const scoped_refptr<dom::Element>& element) {
-  // https://www.w3.org/TR/REC-html40/struct/objects.html#h-13.8
-  // The only element type that supports the "alt" attribute that Cobalt
-  // implements is the <img> element.
-  if (element->AsHTMLElement() &&
-      element->AsHTMLElement()->AsHTMLImageElement()) {
-    base::Optional<std::string> alt_attribute =
-        element->GetAttribute(base::Tokens::alt().c_str());
-    if (alt_attribute) {
-      return AppendTextIfNonEmpty(*alt_attribute);
-    }
-  }
-  return false;
-}
-
-bool TextAlternativeHelper::AppendTextIfNonEmpty(const std::string& text) {
-  std::string trimmed;
-  TrimWhitespaceASCII(text, base::TRIM_ALL, &trimmed);
-  if (!trimmed.empty()) {
-    alternatives_.push_back(trimmed);
-  }
-  return !trimmed.empty();
-}
-
-}  // namespace internal
-}  // namespace accessibility
-}  // namespace cobalt
diff --git a/src/cobalt/accessibility/internal/text_alternative_helper.h b/src/cobalt/accessibility/internal/text_alternative_helper.h
deleted file mode 100644
index 760eef3..0000000
--- a/src/cobalt/accessibility/internal/text_alternative_helper.h
+++ /dev/null
@@ -1,76 +0,0 @@
-// Copyright 2017 The Cobalt Authors. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#ifndef COBALT_ACCESSIBILITY_INTERNAL_TEXT_ALTERNATIVE_HELPER_H_
-#define COBALT_ACCESSIBILITY_INTERNAL_TEXT_ALTERNATIVE_HELPER_H_
-
-#include <string>
-#include <vector>
-
-#include "base/containers/hash_tables.h"
-#include "cobalt/base/token.h"
-#include "cobalt/dom/element.h"
-#include "cobalt/dom/node.h"
-
-namespace cobalt {
-namespace accessibility {
-namespace internal {
-
-// Helper class for implementing the WAI-ARIA Text Alternative computation
-// algorithm, made public for testing. This class should not be used directly.
-class TextAlternativeHelper {
- public:
-  TextAlternativeHelper() : in_labelled_by_or_described_by_(false) {}
-  void AppendTextAlternative(const scoped_refptr<dom::Node>& node);
-
-  // Return the accumulated alternatives joined by a single space character.
-  std::string GetTextAlternative();
-
-  // Append the text alternative from a aria-labelledby or aria-describedby
-  // property. Returns true if text alternative(s) were successfully appended.
-  bool TryAppendFromLabelledByOrDescribedBy(
-      const scoped_refptr<dom::Element>& element, const base::Token& token);
-
-  // Append the text alternative from a aria-label property. Returns true
-  // if the aria-label property exists and has a non-empty value.
-  bool TryAppendFromLabel(const scoped_refptr<dom::Element>& element);
-
-  // Append the text alternative from an element's "alt" property, for element
-  // types that support the semantics of the alt property. The only such element
-  // in Cobalt is <img> elements.
-  // Returns true if |element| is an element that supports the semantics of the
-  // "alt" property, and has a non-empty value for the "alt" property.
-  bool TryAppendFromAltProperty(const scoped_refptr<dom::Element>& element);
-
-  // Append |text| to the accumulation of text alternative strings if it is not
-  // empty. Returns true if text is non-empty.
-  bool AppendTextIfNonEmpty(const std::string& text);
-
-  // Returns true iff this element or one of its ancestors has the "aria-hidden"
-  // attribute set to "true".
-  static bool IsAriaHidden(const scoped_refptr<dom::Element>& element);
-
- private:
-  typedef base::hash_set<base::Token> TokenSet;
-
-  bool in_labelled_by_or_described_by_;
-  std::vector<std::string> alternatives_;
-  TokenSet visited_element_ids_;
-};
-
-}  // namespace internal
-}  // namespace accessibility
-}  // namespace cobalt
-
-#endif  // COBALT_ACCESSIBILITY_INTERNAL_TEXT_ALTERNATIVE_HELPER_H_
diff --git a/src/cobalt/accessibility/internal/text_alternative_helper_test.cc b/src/cobalt/accessibility/internal/text_alternative_helper_test.cc
deleted file mode 100644
index 1be481f..0000000
--- a/src/cobalt/accessibility/internal/text_alternative_helper_test.cc
+++ /dev/null
@@ -1,339 +0,0 @@
-// Copyright 2017 The Cobalt Authors. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#include "cobalt/accessibility/internal/text_alternative_helper.h"
-#include "base/memory/ref_counted.h"
-#include "cobalt/dom/html_image_element.h"
-#include "cobalt/dom/text.h"
-#include "cobalt/test/empty_document.h"
-#include "testing/gmock/include/gmock/gmock.h"
-#include "testing/gtest/include/gtest/gtest.h"
-
-namespace cobalt {
-namespace accessibility {
-namespace internal {
-class TextAlternativeHelperTest : public ::testing::Test {
- protected:
-  dom::Document* document() { return empty_document_.document(); }
-
-  TextAlternativeHelper text_alternative_helper_;
-  // For posting tasks by any triggered code.
-  base::MessageLoop message_loop_;
-  test::EmptyDocument empty_document_;
-};
-
-TEST_F(TextAlternativeHelperTest, ConcatenatesAlternatives) {
-  EXPECT_TRUE(text_alternative_helper_.AppendTextIfNonEmpty("test"));
-  EXPECT_TRUE(text_alternative_helper_.AppendTextIfNonEmpty("dog"));
-  EXPECT_TRUE(text_alternative_helper_.AppendTextIfNonEmpty("cat"));
-  EXPECT_STREQ("test dog cat",
-               text_alternative_helper_.GetTextAlternative().c_str());
-}
-
-TEST_F(TextAlternativeHelperTest, IgnoresEmptyStrings) {
-  EXPECT_FALSE(text_alternative_helper_.AppendTextIfNonEmpty(""));
-  EXPECT_STREQ("", text_alternative_helper_.GetTextAlternative().c_str());
-  EXPECT_FALSE(text_alternative_helper_.AppendTextIfNonEmpty("     "));
-  EXPECT_TRUE(text_alternative_helper_.GetTextAlternative().empty());
-}
-
-TEST_F(TextAlternativeHelperTest, TrimsAlternatives) {
-  EXPECT_TRUE(text_alternative_helper_.AppendTextIfNonEmpty("  test "));
-  EXPECT_TRUE(text_alternative_helper_.AppendTextIfNonEmpty("dog  "));
-  EXPECT_TRUE(text_alternative_helper_.AppendTextIfNonEmpty(" cat"));
-  EXPECT_STREQ("test dog cat",
-               text_alternative_helper_.GetTextAlternative().c_str());
-}
-
-TEST_F(TextAlternativeHelperTest, HiddenOnlyIfAriaHiddenSet) {
-  scoped_refptr<dom::Element> element = document()->CreateElement("div");
-  // No aria-hidden attribute set.
-  EXPECT_FALSE(TextAlternativeHelper::IsAriaHidden(element));
-
-  // aria-hidden attribute set to false.
-  element->SetAttribute(base::Tokens::aria_hidden().c_str(),
-                        base::Tokens::false_token().c_str());
-  EXPECT_FALSE(TextAlternativeHelper::IsAriaHidden(element));
-
-  // aria-hidden attribute set to true.
-  element->SetAttribute(base::Tokens::aria_hidden().c_str(),
-                        base::Tokens::true_token().c_str());
-  EXPECT_TRUE(TextAlternativeHelper::IsAriaHidden(element));
-
-  // aria-hidden set to some arbitrary value.
-  element->SetAttribute(base::Tokens::aria_hidden().c_str(), "banana");
-  EXPECT_FALSE(TextAlternativeHelper::IsAriaHidden(element));
-}
-
-TEST_F(TextAlternativeHelperTest, GetTextAlternativeFromTextNode) {
-  scoped_refptr<dom::Element> element = document()->CreateElement("div");
-  element->AppendChild(document()->CreateTextNode("text node contents"));
-  text_alternative_helper_.AppendTextAlternative(element);
-  EXPECT_STREQ("text node contents",
-               text_alternative_helper_.GetTextAlternative().c_str());
-}
-
-TEST_F(TextAlternativeHelperTest, GetAltAttributeFromHTMLImage) {
-  scoped_refptr<dom::Element> element =
-      document()->CreateElement(dom::HTMLImageElement::kTagName);
-  element->SetAttribute(base::Tokens::alt().c_str(), "image alt text");
-  EXPECT_TRUE(text_alternative_helper_.TryAppendFromAltProperty(element));
-  EXPECT_STREQ("image alt text",
-               text_alternative_helper_.GetTextAlternative().c_str());
-}
-
-TEST_F(TextAlternativeHelperTest, EmptyAltAttribute) {
-  scoped_refptr<dom::Element> element =
-      document()->CreateElement(dom::HTMLImageElement::kTagName);
-  // No alt attribute.
-  EXPECT_FALSE(text_alternative_helper_.TryAppendFromAltProperty(element));
-  EXPECT_TRUE(text_alternative_helper_.GetTextAlternative().empty());
-
-  // Empty alt attribute.
-  element->SetAttribute(base::Tokens::alt().c_str(), "");
-  EXPECT_FALSE(text_alternative_helper_.TryAppendFromAltProperty(element));
-  EXPECT_TRUE(text_alternative_helper_.GetTextAlternative().empty());
-}
-
-TEST_F(TextAlternativeHelperTest, AltAttributeOnArbitraryElement) {
-  scoped_refptr<dom::Element> element = document()->CreateElement("div");
-  element->SetAttribute(base::Tokens::alt().c_str(), "alt text");
-  EXPECT_FALSE(text_alternative_helper_.TryAppendFromAltProperty(element));
-  EXPECT_TRUE(text_alternative_helper_.GetTextAlternative().empty());
-}
-
-TEST_F(TextAlternativeHelperTest, GetTextFromAriaLabel) {
-  scoped_refptr<dom::Element> element = document()->CreateElement("div");
-  element->SetAttribute(base::Tokens::aria_label().c_str(), "label text");
-  EXPECT_TRUE(text_alternative_helper_.TryAppendFromLabel(element));
-  EXPECT_STREQ("label text",
-               text_alternative_helper_.GetTextAlternative().c_str());
-}
-
-TEST_F(TextAlternativeHelperTest, IgnoreEmptyAriaLabel) {
-  scoped_refptr<dom::Element> element = document()->CreateElement("test");
-  element->SetAttribute(base::Tokens::aria_label().c_str(), "   ");
-  EXPECT_FALSE(text_alternative_helper_.TryAppendFromLabel(element));
-  EXPECT_TRUE(text_alternative_helper_.GetTextAlternative().empty());
-}
-
-TEST_F(TextAlternativeHelperTest, GetTextFromAriaLabelledBy) {
-  scoped_refptr<dom::Element> target_element = document()->CreateElement("div");
-  target_element->AppendChild(document()->CreateTextNode("labelledby target"));
-  target_element->set_id("target_element");
-  document()->AppendChild(target_element);
-
-  scoped_refptr<dom::Element> labelledby_element =
-      document()->CreateElement("div");
-  labelledby_element->SetAttribute(base::Tokens::aria_labelledby().c_str(),
-                                   "target_element");
-  document()->AppendChild(labelledby_element);
-
-  EXPECT_TRUE(text_alternative_helper_.TryAppendFromLabelledByOrDescribedBy(
-      labelledby_element, base::Tokens::aria_labelledby()));
-  EXPECT_STREQ("labelledby target",
-               text_alternative_helper_.GetTextAlternative().c_str());
-}
-
-TEST_F(TextAlternativeHelperTest, InvalidLabelledByReference) {
-  scoped_refptr<dom::Element> target_element = document()->CreateElement("div");
-  target_element->AppendChild(document()->CreateTextNode("labelledby target"));
-  target_element->set_id("target_element");
-  document()->AppendChild(target_element);
-
-  scoped_refptr<dom::Element> labelledby_element =
-      document()->CreateElement("div");
-  labelledby_element->SetAttribute(base::Tokens::aria_labelledby().c_str(),
-                                   "bad_reference");
-  document()->AppendChild(labelledby_element);
-
-  EXPECT_FALSE(text_alternative_helper_.TryAppendFromLabelledByOrDescribedBy(
-      labelledby_element, base::Tokens::aria_labelledby()));
-  EXPECT_TRUE(text_alternative_helper_.GetTextAlternative().empty());
-}
-
-TEST_F(TextAlternativeHelperTest, MultipleLabelledByReferences) {
-  scoped_refptr<dom::Element> target_element = document()->CreateElement("div");
-  target_element->AppendChild(document()->CreateTextNode("target1"));
-  target_element->set_id("target_element1");
-  document()->AppendChild(target_element);
-  target_element = document()->CreateElement("div");
-  target_element->AppendChild(document()->CreateTextNode("target2"));
-  target_element->set_id("target_element2");
-  document()->AppendChild(target_element);
-  target_element = document()->CreateElement("div");
-  target_element->AppendChild(document()->CreateTextNode("target3"));
-  target_element->set_id("target_element3");
-  document()->AppendChild(target_element);
-
-  scoped_refptr<dom::Element> labelledby_element =
-      document()->CreateElement("div");
-  labelledby_element->SetAttribute(
-      base::Tokens::aria_labelledby().c_str(),
-      "target_element1 target_element2 bad_reference target_element3");
-  document()->AppendChild(labelledby_element);
-
-  EXPECT_TRUE(text_alternative_helper_.TryAppendFromLabelledByOrDescribedBy(
-      labelledby_element, base::Tokens::aria_labelledby()));
-  EXPECT_STREQ("target1 target2 target3",
-               text_alternative_helper_.GetTextAlternative().c_str());
-}
-
-TEST_F(TextAlternativeHelperTest, LabelledByReferencesSelf) {
-  scoped_refptr<dom::Element> target_element = document()->CreateElement("div");
-  target_element->AppendChild(document()->CreateTextNode("other-text"));
-  target_element->set_id("other_id");
-  document()->AppendChild(target_element);
-
-  scoped_refptr<dom::Element> labelledby_element =
-      document()->CreateElement("div");
-  labelledby_element->set_id("self_id");
-  labelledby_element->SetAttribute(base::Tokens::aria_label().c_str(),
-                                   "self-label");
-  labelledby_element->SetAttribute(base::Tokens::aria_labelledby().c_str(),
-                                   "other_id self_id");
-  document()->AppendChild(labelledby_element);
-
-  EXPECT_TRUE(text_alternative_helper_.TryAppendFromLabelledByOrDescribedBy(
-      labelledby_element, base::Tokens::aria_labelledby()));
-  EXPECT_STREQ("other-text self-label",
-               text_alternative_helper_.GetTextAlternative().c_str());
-}
-
-TEST_F(TextAlternativeHelperTest, NoRecursiveLabelledBy) {
-  scoped_refptr<dom::Element> element = document()->CreateElement("div");
-  element->SetAttribute(base::Tokens::aria_labelledby().c_str(),
-                        "first_labelled_by_id");
-  document()->AppendChild(element);
-
-  scoped_refptr<dom::Element> first_labelledby_element =
-      document()->CreateElement("div");
-  first_labelledby_element->AppendChild(
-      document()->CreateTextNode("first-labelledby-text-contents"));
-  first_labelledby_element->set_id("first_labelled_by_id");
-  first_labelledby_element->SetAttribute(
-      base::Tokens::aria_labelledby().c_str(), "second_labelled_by_id");
-  document()->AppendChild(first_labelledby_element);
-
-  scoped_refptr<dom::Element> second_labelledby_element =
-      document()->CreateElement("div");
-  second_labelledby_element->AppendChild(
-      document()->CreateTextNode("second-labelledby-text-contents"));
-  second_labelledby_element->set_id("second_labelled_by_id");
-  document()->AppendChild(second_labelledby_element);
-
-  // In the non-recursive case, we should follow the labelledby attribute.
-  text_alternative_helper_.AppendTextAlternative(first_labelledby_element);
-  EXPECT_STREQ("second-labelledby-text-contents",
-               text_alternative_helper_.GetTextAlternative().c_str());
-
-  // In the recursive case, we should not follow the second labelledby
-  // attribute.
-  text_alternative_helper_ = TextAlternativeHelper();
-  text_alternative_helper_.AppendTextAlternative(element);
-  EXPECT_STREQ("first-labelledby-text-contents",
-               text_alternative_helper_.GetTextAlternative().c_str());
-}
-
-TEST_F(TextAlternativeHelperTest, GetTextFromSubtree) {
-  scoped_refptr<dom::Element> element = document()->CreateElement("div");
-  document()->AppendChild(element);
-
-  scoped_refptr<dom::Element> child = document()->CreateElement("div");
-  child->AppendChild(document()->CreateTextNode("child1-text"));
-  element->AppendChild(child);
-
-  scoped_refptr<dom::Element> child_element = document()->CreateElement("div");
-  element->AppendChild(child_element);
-
-  child = document()->CreateElement("div");
-  child->AppendChild(document()->CreateTextNode("child2-text"));
-  child_element->AppendChild(child);
-
-  child = document()->CreateElement("div");
-  child->AppendChild(document()->CreateTextNode("child3-text"));
-  child_element->AppendChild(child);
-
-  text_alternative_helper_.AppendTextAlternative(element);
-  EXPECT_STREQ("child1-text child2-text child3-text",
-               text_alternative_helper_.GetTextAlternative().c_str());
-}
-
-TEST_F(TextAlternativeHelperTest, DontFollowReferenceLoops) {
-  scoped_refptr<dom::Element> element = document()->CreateElement("div");
-  element->set_id("root_element_id");
-  document()->AppendChild(element);
-
-  scoped_refptr<dom::Element> child_element1 = document()->CreateElement("div");
-  child_element1->SetAttribute(base::Tokens::aria_labelledby().c_str(),
-                               "root_element_id");
-  element->AppendChild(child_element1);
-
-  scoped_refptr<dom::Element> child_element2 = document()->CreateElement("div");
-  child_element1->AppendChild(child_element2);
-
-  child_element2->AppendChild(document()->CreateTextNode("child2-text"));
-
-  text_alternative_helper_.AppendTextAlternative(element);
-  EXPECT_STREQ("child2-text",
-               text_alternative_helper_.GetTextAlternative().c_str());
-}
-
-TEST_F(TextAlternativeHelperTest, GetTextFromAriaDescribedBy) {
-  scoped_refptr<dom::Element> target_element = document()->CreateElement("div");
-  target_element->AppendChild(document()->CreateTextNode("describedby target"));
-  target_element->set_id("target_element");
-  document()->AppendChild(target_element);
-
-  scoped_refptr<dom::Element> describedby_element =
-      document()->CreateElement("div");
-  describedby_element->SetAttribute(base::Tokens::aria_describedby().c_str(),
-                                    "target_element");
-  document()->AppendChild(describedby_element);
-
-  EXPECT_TRUE(text_alternative_helper_.TryAppendFromLabelledByOrDescribedBy(
-      describedby_element, base::Tokens::aria_describedby()));
-  EXPECT_STREQ("describedby target",
-               text_alternative_helper_.GetTextAlternative().c_str());
-}
-
-TEST_F(TextAlternativeHelperTest, HasBothLabelledByAndDescribedBy) {
-  // aria-describedby is ignored in this case.
-  scoped_refptr<dom::Element> element = document()->CreateElement("div");
-  document()->AppendChild(element);
-
-  element->SetAttribute(base::Tokens::aria_labelledby().c_str(), "calendar");
-  element->SetAttribute(base::Tokens::aria_describedby().c_str(), "info");
-
-  scoped_refptr<dom::Element> labelledby_element =
-      document()->CreateElement("div");
-  labelledby_element->set_id("calendar");
-  labelledby_element->AppendChild(document()->CreateTextNode("Calendar"));
-  element->AppendChild(labelledby_element);
-
-  scoped_refptr<dom::Element> describedby_element =
-      document()->CreateElement("div");
-  describedby_element->set_id("info");
-  describedby_element->AppendChild(
-      document()->CreateTextNode("Calendar content description."));
-  element->AppendChild(describedby_element);
-
-  text_alternative_helper_.AppendTextAlternative(element);
-  EXPECT_STREQ("Calendar",
-               text_alternative_helper_.GetTextAlternative().c_str());
-}
-
-}  // namespace internal
-}  // namespace accessibility
-}  // namespace cobalt
diff --git a/src/cobalt/accessibility/screen_reader.cc b/src/cobalt/accessibility/screen_reader.cc
deleted file mode 100644
index 6e313b8..0000000
--- a/src/cobalt/accessibility/screen_reader.cc
+++ /dev/null
@@ -1,181 +0,0 @@
-// Copyright 2017 The Cobalt Authors. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#include "cobalt/accessibility/screen_reader.h"
-
-#include <memory>
-#include <string>
-
-#include "base/strings/stringprintf.h"
-#include "cobalt/accessibility/internal/live_region.h"
-#include "cobalt/accessibility/text_alternative.h"
-#include "cobalt/dom/element.h"
-#include "cobalt/dom/html_body_element.h"
-#include "cobalt/dom/node_list.h"
-
-namespace cobalt {
-namespace accessibility {
-namespace {
-// When text is removed from a live region, add the word "Removed" to indicate
-// that the text has been removed.
-// TODO: Support other languages.
-const char kRemovedFormatString[] = "Removed. %s";
-}  // namespace
-
-ScreenReader::ScreenReader(dom::Document* document, TTSEngine* tts_engine,
-                           dom::MutationObserverTaskManager* task_manager)
-    : enabled_(true),
-      document_(document),
-      tts_engine_(tts_engine),
-      focus_changed_(false) {
-  DCHECK(document_ && tts_engine_);
-  document_->AddObserver(this);
-  live_region_observer_ = new dom::MutationObserver(
-      base::Bind(&ScreenReader::MutationObserverCallback, AsWeakPtr()),
-      task_manager);
-}
-
-ScreenReader::~ScreenReader() {
-  live_region_observer_->Disconnect();
-  document_->RemoveObserver(this);
-}
-
-void ScreenReader::set_enabled(bool value) { enabled_ = value; }
-
-void ScreenReader::OnLoad() {
-  dom::MutationObserverInit init;
-  init.set_subtree(true);
-  // Track character data and node addition/removal for live regions.
-  init.set_character_data(true);
-  init.set_child_list(true);
-
-  if (document_->body()) {
-    live_region_observer_->Observe(document_->body(), init);
-  }
-}
-
-void ScreenReader::OnFocusChanged() {
-  if (focus_changed_) {
-    return;
-  }
-  focus_changed_ = true;
-  base::MessageLoop::current()->task_runner()->PostTask(
-      FROM_HERE, base::Bind(&ScreenReader::FocusChangedCallback, AsWeakPtr()));
-}
-
-void ScreenReader::FocusChangedCallback() {
-  focus_changed_ = false;
-  if (!enabled_) {
-    return;
-  }
-  scoped_refptr<dom::Element> element = document_->active_element();
-  if (element) {
-    std::string text_alternative = ComputeTextAlternative(element);
-    tts_engine_->SpeakNow(text_alternative);
-  }
-}
-
-// MutationObserver callback for tracking the creation and destruction of
-// live regions.
-void ScreenReader::MutationObserverCallback(
-    const MutationRecordSequence& sequence,
-    const scoped_refptr<dom::MutationObserver>& observer) {
-  // TODO: Only check live regions if text-to-speech is enabled.
-  if (!enabled_) {
-    return;
-  }
-  DCHECK_EQ(observer, live_region_observer_);
-  for (size_t i = 0; i < sequence.size(); ++i) {
-    scoped_refptr<dom::MutationRecord> record = sequence.at(i);
-
-    // Check if the target node is part of a live region.
-    std::unique_ptr<internal::LiveRegion> live_region =
-        internal::LiveRegion::GetLiveRegionForNode(record->target());
-    if (!live_region) {
-      continue;
-    }
-
-    const char* format_string = NULL;
-    // Get a list of changed nodes, based on the type of change this was and
-    // whether or not the live region cares about this type of change.
-    scoped_refptr<dom::NodeList> changed_nodes;
-    if (record->type() == base::Tokens::characterData() &&
-        live_region->IsMutationRelevant(
-            internal::LiveRegion::kMutationTypeText)) {
-      changed_nodes = new dom::NodeList();
-      changed_nodes->AppendNode(record->target());
-    } else if (record->type() == base::Tokens::childList()) {
-      if (record->added_nodes() &&
-          live_region->IsMutationRelevant(
-              internal::LiveRegion::kMutationTypeAddition)) {
-        changed_nodes = record->added_nodes();
-      }
-      if (record->removed_nodes() &&
-          live_region->IsMutationRelevant(
-              internal::LiveRegion::kMutationTypeRemoval)) {
-        changed_nodes = record->removed_nodes();
-        format_string = kRemovedFormatString;
-      }
-    }
-    // If we don't have changed nodes, that means that the change was not
-    // relevant to this live region.
-    if (!changed_nodes || (changed_nodes->length() <= 0)) {
-      continue;
-    }
-
-    // Check if any of the changed nodes should update the live region
-    // atomically.
-    bool is_atomic = false;
-    for (size_t i = 0; i < changed_nodes->length(); ++i) {
-      if (live_region->IsAtomic(changed_nodes->Item(i))) {
-        is_atomic = true;
-        break;
-      }
-    }
-
-    std::string text_alternative;
-    if (is_atomic) {
-      // If the live region updates atomically, then ignore changed_nodes
-      // and just get the text alternative from the entire region.
-      text_alternative = ComputeTextAlternative(live_region->root());
-    } else {
-      // Otherwise append all the text alternatives for each node.
-      for (size_t i = 0; i < changed_nodes->length(); ++i) {
-        text_alternative += ComputeTextAlternative(changed_nodes->Item(i));
-      }
-    }
-
-    // If we still don't have a text_alternative to speak, continue to the next
-    // mutation.
-    if (text_alternative.empty()) {
-      continue;
-    }
-
-    // Provide additional context through a format string, if necessary.
-    if (format_string) {
-      text_alternative =
-          base::StringPrintf(format_string, text_alternative.c_str());
-    }
-
-    // Utter the text according to whether this live region is assertive or not.
-    if (live_region->IsAssertive()) {
-      tts_engine_->SpeakNow(text_alternative);
-    } else {
-      tts_engine_->Speak(text_alternative);
-    }
-  }
-}
-
-}  // namespace accessibility
-}  // namespace cobalt
diff --git a/src/cobalt/accessibility/screen_reader.h b/src/cobalt/accessibility/screen_reader.h
deleted file mode 100644
index 83eb183..0000000
--- a/src/cobalt/accessibility/screen_reader.h
+++ /dev/null
@@ -1,70 +0,0 @@
-// Copyright 2017 The Cobalt Authors. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#ifndef COBALT_ACCESSIBILITY_SCREEN_READER_H_
-#define COBALT_ACCESSIBILITY_SCREEN_READER_H_
-
-#include <memory>
-
-#include "base/memory/weak_ptr.h"
-#include "cobalt/accessibility/tts_engine.h"
-#include "cobalt/dom/document.h"
-#include "cobalt/dom/mutation_observer.h"
-#include "cobalt/dom/mutation_observer_task_manager.h"
-
-namespace cobalt {
-namespace accessibility {
-// ScreenReader tracks changes in the state of the Document and provides speech
-// utterances to a TTSEngine. The main use cases covered are when the document's
-// focused element changes, usually in response to user input, or if there is
-// an asynchronous change to "live region" that should be communicated to the
-// user.
-class ScreenReader : public base::SupportsWeakPtr<ScreenReader>,
-                     public dom::DocumentObserver {
- public:
-  ScreenReader(dom::Document* document, TTSEngine* tts_engine,
-               dom::MutationObserverTaskManager* task_manager);
-
-  void set_enabled(bool enabled);
-  bool enabled() const { return enabled_; }
-
- protected:
-  ~ScreenReader();
-  // dom::DocumentObserver overrides.
-  void OnLoad() override;
-  void OnMutation() override {}
-  void OnFocusChanged() override;
-
- private:
-  typedef script::Sequence<scoped_refptr<dom::MutationRecord> >
-      MutationRecordSequence;
-  void FocusChangedCallback();
-  // MutationObserver callback for tracking live regions.
-  void MutationObserverCallback(
-      const MutationRecordSequence& sequence,
-      const scoped_refptr<dom::MutationObserver>& observer);
-
-  bool enabled_;
-  dom::Document* document_;
-  TTSEngine* tts_engine_;
-  scoped_refptr<dom::MutationObserver> live_region_observer_;
-  bool focus_changed_;
-
-  friend std::unique_ptr<ScreenReader>::deleter_type;
-  DISALLOW_COPY_AND_ASSIGN(ScreenReader);
-};
-}  // namespace accessibility
-}  // namespace cobalt
-
-#endif  // COBALT_ACCESSIBILITY_SCREEN_READER_H_
diff --git a/src/cobalt/accessibility/screen_reader_tests.cc b/src/cobalt/accessibility/screen_reader_tests.cc
deleted file mode 100644
index 238c096..0000000
--- a/src/cobalt/accessibility/screen_reader_tests.cc
+++ /dev/null
@@ -1,206 +0,0 @@
-// Copyright 2017 The Cobalt Authors. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#include <memory>
-#include <string>
-#include <vector>
-
-#include "base/base_paths.h"
-#include "base/files/file_enumerator.h"
-#include "base/files/file_path.h"
-#include "base/files/file_util.h"
-#include "base/memory/ref_counted.h"
-#include "base/path_service.h"
-#include "cobalt/accessibility/screen_reader.h"
-#include "cobalt/accessibility/text_alternative.h"
-#include "cobalt/accessibility/tts_engine.h"
-#include "cobalt/browser/web_module.h"
-#include "cobalt/cssom/viewport_size.h"
-#include "cobalt/dom/element.h"
-#include "cobalt/dom/window.h"
-#include "cobalt/test/document_loader.h"
-#include "starboard/window.h"
-#include "testing/gmock/include/gmock/gmock.h"
-#include "testing/gtest/include/gtest/gtest.h"
-
-using cobalt::cssom::ViewportSize;
-using testing::_;
-
-namespace cobalt {
-namespace accessibility {
-namespace {
-struct TestInfo {
-  TestInfo(const std::string& html_file_name,
-           const std::string& expected_result, bool screen_reader_enabled)
-      : html_file_name(html_file_name),
-        expected_result(expected_result),
-        screen_reader_enabled(screen_reader_enabled) {}
-  std::string html_file_name;
-  std::string expected_result;
-  bool screen_reader_enabled;
-};
-
-// Enumerate the *.html files in the accessibility_test directory and build
-// a list of input .html files and expected results.
-std::vector<TestInfo> EnumerateTests(bool screen_reader_enabled,
-                                     const std::string& subdir) {
-  std::vector<TestInfo> infos;
-  base::FilePath root_directory;
-  base::PathService::Get(base::DIR_TEST_DATA, &root_directory);
-  root_directory = root_directory.Append("cobalt")
-                       .Append("accessibility")
-                       .Append("testdata")
-                       .Append(subdir);
-  base::FileEnumerator enumerator(root_directory, false,
-                                  base::FileEnumerator::FILES);
-  for (base::FilePath html_file = enumerator.Next(); !html_file.empty();
-       html_file = enumerator.Next()) {
-    if (html_file.Extension() == ".html") {
-      base::FilePath expected_results_file =
-          html_file.ReplaceExtension(".expected");
-      std::string results;
-      if (!base::ReadFileToString(expected_results_file, &results)) {
-        DLOG(WARNING) << "Failed to read results from file: "
-                      << expected_results_file.value();
-        continue;
-      }
-      TrimWhitespaceASCII(results, base::TRIM_ALL, &results);
-      infos.push_back(TestInfo(html_file.BaseName().value(), results,
-                               screen_reader_enabled));
-    }
-  }
-  return infos;
-}
-
-class MockTTSEngine : public TTSEngine {
- public:
-  MOCK_METHOD1(Speak, void(const std::string&));
-  MOCK_METHOD1(SpeakNow, void(const std::string&));
-};
-
-class TextAlternativeTest : public ::testing::TestWithParam<TestInfo> {
- protected:
-  // For posting tasks by any triggered code.
-  test::DocumentLoader document_loader_;
-};
-
-class LiveRegionMutationTest : public ::testing::TestWithParam<TestInfo> {
- public:
-  LiveRegionMutationTest()
-      : quit_event_(base::WaitableEvent::ResetPolicy::MANUAL,
-                    base::WaitableEvent::InitialState::NOT_SIGNALED) {}
-  void OnError(const GURL&, const std::string& error) {
-    DLOG(ERROR) << error;
-    Quit();
-  }
-  void Quit() {
-    quit_event_.Signal();
-    screen_reader_.reset();
-  }
-  void OnClose(base::TimeDelta close_time) {
-    SB_UNREFERENCED_PARAMETER(close_time);
-    Quit();
-  }
-
-  scoped_refptr<script::Wrappable> CreateWindowAttribute(
-      const scoped_refptr<dom::Window>& window,
-      dom::MutationObserverTaskManager* mutation_observer_task_manager,
-      script::GlobalEnvironment* global_environment) {
-    SB_UNREFERENCED_PARAMETER(global_environment);
-    screen_reader_.reset(new accessibility::ScreenReader(
-        window->document(), &tts_engine_, mutation_observer_task_manager));
-    screen_reader_->set_enabled(GetParam().screen_reader_enabled);
-    EXPECT_EQ(GetParam().screen_reader_enabled, screen_reader_->enabled());
-
-    return NULL;
-  }
-
-  static void OnRenderTreeProducedStub(
-      const browser::WebModule::LayoutResults&) {}
-
- protected:
-  MockTTSEngine tts_engine_;
-  base::WaitableEvent quit_event_;
-  std::unique_ptr<accessibility::ScreenReader> screen_reader_;
-};
-}  // namespace
-
-TEST_P(TextAlternativeTest, TextAlternativeTest) {
-  GURL url(
-      std::string("file:///cobalt/accessibility/testdata/text_alternative/" +
-                  GetParam().html_file_name));
-  document_loader_.Load(url);
-  ASSERT_TRUE(document_loader_.document());
-  scoped_refptr<dom::Element> element =
-      document_loader_.document()->GetElementById("element_to_test");
-  ASSERT_TRUE(element);
-  EXPECT_EQ(GetParam().expected_result, ComputeTextAlternative(element));
-}
-
-// This test broke  because LiveRegionMutationTest::CreateWindowAttribute()
-// returns a NULL script::Wrappable, which the javascript engine will attempt
-// to dereference.
-TEST_P(LiveRegionMutationTest, DISABLED_LiveRegionMutationTest) {
-  GURL url(std::string("file:///cobalt/accessibility/testdata/live_region/" +
-                       GetParam().html_file_name));
-  const ViewportSize kDefaultViewportSize(1280, 720);
-  const float kDefaultVideoPixelRatio = 1.0f;
-  const float kRefreshRate = 60.0f;
-
-  network::NetworkModule network_module((network::NetworkModule::Options()));
-  render_tree::ResourceProviderStub resource_provider;
-
-  // Use test runner mode to allow the content itself to dictate when it is
-  // ready for layout should be performed.  See cobalt/dom/test_runner.h.
-  browser::WebModule::Options web_module_options;
-  web_module_options.injected_window_attributes["test"] = base::Bind(
-      &LiveRegionMutationTest::CreateWindowAttribute, base::Unretained(this));
-
-  // Set expected result from mutation.
-  std::string expected_speech = GetParam().expected_result;
-  if (expected_speech.empty() || !GetParam().screen_reader_enabled) {
-    EXPECT_CALL(tts_engine_, Speak(_)).Times(0);
-  } else {
-    EXPECT_CALL(tts_engine_, Speak(expected_speech));
-  }
-
-  // Create the webmodule and let it run.
-  DLOG(INFO) << url.spec();
-  browser::WebModule web_module(
-      url, base::kApplicationStateStarted,
-      base::Bind(&LiveRegionMutationTest::OnRenderTreeProducedStub),
-      base::Bind(&LiveRegionMutationTest::OnError, base::Unretained(this)),
-      base::Bind(&LiveRegionMutationTest::OnClose, base::Unretained(this)),
-      base::Closure(), /* window_minimize_callback */
-      NULL /* can_play_type_handler */, NULL /* web_media_player_factory */,
-      &network_module, kDefaultViewportSize, kDefaultVideoPixelRatio,
-      &resource_provider, kRefreshRate, web_module_options);
-
-  // Wait for the test to quit.
-  quit_event_.Wait();
-}
-
-INSTANTIATE_TEST_CASE_P(
-    TextAlternativeTest, TextAlternativeTest,
-    ::testing::ValuesIn(EnumerateTests(true, "text_alternative")));
-
-INSTANTIATE_TEST_CASE_P(LiveRegionMutationTestEnabled, LiveRegionMutationTest,
-                        ::testing::ValuesIn(EnumerateTests(true,
-                                                           "live_region")));
-
-INSTANTIATE_TEST_CASE_P(LiveRegionMutationTestDisabled, LiveRegionMutationTest,
-                        ::testing::ValuesIn(EnumerateTests(false,
-                                                           "live_region")));
-}  // namespace accessibility
-}  // namespace cobalt
diff --git a/src/cobalt/accessibility/starboard_tts_engine.cc b/src/cobalt/accessibility/starboard_tts_engine.cc
deleted file mode 100644
index c05afd4..0000000
--- a/src/cobalt/accessibility/starboard_tts_engine.cc
+++ /dev/null
@@ -1,36 +0,0 @@
-// Copyright 2017 The Cobalt Authors. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#include "cobalt/accessibility/starboard_tts_engine.h"
-
-#include "starboard/speech_synthesis.h"
-
-#if SB_HAS(SPEECH_SYNTHESIS)
-
-namespace cobalt {
-namespace accessibility {
-
-void StarboardTTSEngine::SpeakNow(const std::string& text) {
-  SbSpeechSynthesisCancel();
-  Speak(text);
-}
-
-void StarboardTTSEngine::Speak(const std::string& text) {
-  SbSpeechSynthesisSpeak(text.c_str());
-}
-
-}  // namespace accessibility
-}  // namespace cobalt
-
-#endif  // SB_HAS(SPEECH_SYNTHESIS)
diff --git a/src/cobalt/accessibility/starboard_tts_engine.h b/src/cobalt/accessibility/starboard_tts_engine.h
deleted file mode 100644
index 7eb8c50..0000000
--- a/src/cobalt/accessibility/starboard_tts_engine.h
+++ /dev/null
@@ -1,36 +0,0 @@
-// Copyright 2017 The Cobalt Authors. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#ifndef COBALT_ACCESSIBILITY_STARBOARD_TTS_ENGINE_H_
-#define COBALT_ACCESSIBILITY_STARBOARD_TTS_ENGINE_H_
-
-#include <string>
-
-#include "base/compiler_specific.h"
-#include "cobalt/accessibility/tts_engine.h"
-
-namespace cobalt {
-namespace accessibility {
-
-// Implementation of TTSEngine using the Starboard Speech Synthesis API.
-class StarboardTTSEngine : public TTSEngine {
- public:
-  void SpeakNow(const std::string& text) override;
-  void Speak(const std::string& text) override;
-  ~StarboardTTSEngine() override {}
-};
-}  // namespace accessibility
-}  // namespace cobalt
-
-#endif  // COBALT_ACCESSIBILITY_STARBOARD_TTS_ENGINE_H_
diff --git a/src/cobalt/accessibility/testdata/live_region/add-child.expected b/src/cobalt/accessibility/testdata/live_region/add-child.expected
deleted file mode 100644
index 4706dc8..0000000
--- a/src/cobalt/accessibility/testdata/live_region/add-child.expected
+++ /dev/null
@@ -1 +0,0 @@
-New child text contents
diff --git a/src/cobalt/accessibility/testdata/live_region/add-child.html b/src/cobalt/accessibility/testdata/live_region/add-child.html
deleted file mode 100644
index c22f5d2..0000000
--- a/src/cobalt/accessibility/testdata/live_region/add-child.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<html>
-<head>
-<script>
-var doMutation = function() {
-  var region = document.getElementById("to_mutate");
-  var new_child = document.createElement("div");
-  new_child.appendChild(document.createTextNode("New child text contents"));
-  region.appendChild(new_child);
-  window.setTimeout(function() { window.close(); } );
-}
-window.addEventListener("load", doMutation);
-</script>
-</head>
-<body>
-<div id="to_mutate" aria-live="polite" aria-relevant="additions" aria-atomic="false">
-   Original contents.
-</div>
-</body>
-</html>
diff --git a/src/cobalt/accessibility/testdata/live_region/atomic-update.expected b/src/cobalt/accessibility/testdata/live_region/atomic-update.expected
deleted file mode 100644
index c4395db..0000000
--- a/src/cobalt/accessibility/testdata/live_region/atomic-update.expected
+++ /dev/null
@@ -1 +0,0 @@
-Original contents. New child text contents
diff --git a/src/cobalt/accessibility/testdata/live_region/atomic-update.html b/src/cobalt/accessibility/testdata/live_region/atomic-update.html
deleted file mode 100644
index 7e9a9cc..0000000
--- a/src/cobalt/accessibility/testdata/live_region/atomic-update.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<html>
-<head>
-<script>
-var doMutation = function() {
-  var region = document.getElementById("to_mutate");
-  var new_child = document.createElement("div");
-  new_child.appendChild(document.createTextNode("New child text contents"));
-  region.appendChild(new_child);
-  window.setTimeout(function() { window.close(); } );
-}
-window.addEventListener("load", doMutation);
-</script>
-</head>
-<body>
-<div id="to_mutate" aria-live="polite" aria-relevant="additions" aria-atomic="true">
-   Original contents.
-</div>
-</body>
-</html>
diff --git a/src/cobalt/accessibility/testdata/live_region/mutate-text-contents.expected b/src/cobalt/accessibility/testdata/live_region/mutate-text-contents.expected
deleted file mode 100644
index 8a1cd73..0000000
--- a/src/cobalt/accessibility/testdata/live_region/mutate-text-contents.expected
+++ /dev/null
@@ -1 +0,0 @@
-New text contents
diff --git a/src/cobalt/accessibility/testdata/live_region/mutate-text-contents.html b/src/cobalt/accessibility/testdata/live_region/mutate-text-contents.html
deleted file mode 100644
index 53e5afe..0000000
--- a/src/cobalt/accessibility/testdata/live_region/mutate-text-contents.html
+++ /dev/null
@@ -1,18 +0,0 @@
-<html>
-<head>
-<script>
-var doMutation = function() {
-  var region = document.getElementById("to_mutate");
-  region.firstChild.textContent = "New text contents";
-
-  window.setTimeout(function() { window.close(); } );
-}
-window.addEventListener("load", doMutation);
-</script>
-</head>
-<body>
-<div id="to_mutate" aria-live="polite" aria-relevant="text" aria-atomic="false">
-   Original contents.
-</div>
-</body>
-</html>
diff --git a/src/cobalt/accessibility/testdata/live_region/non-relevant-mutations.expected b/src/cobalt/accessibility/testdata/live_region/non-relevant-mutations.expected
deleted file mode 100644
index e69de29..0000000
--- a/src/cobalt/accessibility/testdata/live_region/non-relevant-mutations.expected
+++ /dev/null
diff --git a/src/cobalt/accessibility/testdata/live_region/non-relevant-mutations.html b/src/cobalt/accessibility/testdata/live_region/non-relevant-mutations.html
deleted file mode 100644
index f315236..0000000
--- a/src/cobalt/accessibility/testdata/live_region/non-relevant-mutations.html
+++ /dev/null
@@ -1,39 +0,0 @@
-<html>
-<head>
-<script>
-var doMutation = function() {
-  var text_only_region = document.getElementById("text_only");
-  var to_remove = document.getElementById("text_only_to_remove");
-  text_only_region.removeChild(to_remove);
-  text_only_region.appendChild(document.createTextNode("Irrelevant"))
-
-  var additions_only_region = document.getElementById("additions_only");
-  to_remove = document.getElementById("additions_only_to_remove");
-  additions_only_region.removeChild(to_remove);
-
-  var to_mutate = document.getElementById("additions_only_to_mutate");
-  to_mutate.firstChild.textContent = "New Content";
-
-  window.setTimeout(function() { window.close(); } );
-}
-window.addEventListener("load", doMutation);
-</script>
-</head>
-<body>
-<div id="text_only" aria-live="polite" aria-relevant="text" aria-atomic="false">
-  Some contents
-  <div id="text_only_to_remove">
-    Contents to be removed
-  </div>
-<div>
-<div id="additions_only" aria-live="polite" aria-relevant="additions" aria-atomic="false">
-  Some contents
-  <div id="additions_only_to_remove">
-    Contents to be removed
-  </div>
-  <div id="additions_only_to_mutate">
-    Old text contents
-  </div>
-<div>
-</body>
-</html>
diff --git a/src/cobalt/accessibility/testdata/live_region/remove-child.expected b/src/cobalt/accessibility/testdata/live_region/remove-child.expected
deleted file mode 100644
index c08dfdb..0000000
--- a/src/cobalt/accessibility/testdata/live_region/remove-child.expected
+++ /dev/null
@@ -1 +0,0 @@
-Removed. Contents to be removed
diff --git a/src/cobalt/accessibility/testdata/live_region/remove-child.html b/src/cobalt/accessibility/testdata/live_region/remove-child.html
deleted file mode 100644
index 40727ec..0000000
--- a/src/cobalt/accessibility/testdata/live_region/remove-child.html
+++ /dev/null
@@ -1,21 +0,0 @@
-<html>
-<head>
-<script>
-var doMutation = function() {
-  var region = document.getElementById("to_mutate");
-  var to_remove = document.getElementById("to_remove");
-  region.removeChild(to_remove);
-  window.setTimeout(function() { window.close(); } );
-}
-window.addEventListener("load", doMutation);
-</script>
-</head>
-<body>
-<div id="to_mutate" aria-live="polite" aria-relevant="removals" aria-atomic="false">
-  Some contents
-  <div id="to_remove">
-    Contents to be removed
-  </div>
-</div>
-</body>
-</html>
diff --git a/src/cobalt/accessibility/testdata/text_alternative/hidden-by-parent.expected b/src/cobalt/accessibility/testdata/text_alternative/hidden-by-parent.expected
deleted file mode 100644
index 8b13789..0000000
--- a/src/cobalt/accessibility/testdata/text_alternative/hidden-by-parent.expected
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/src/cobalt/accessibility/testdata/text_alternative/hidden-by-parent.html b/src/cobalt/accessibility/testdata/text_alternative/hidden-by-parent.html
deleted file mode 100644
index 7efd526..0000000
--- a/src/cobalt/accessibility/testdata/text_alternative/hidden-by-parent.html
+++ /dev/null
@@ -1,7 +0,0 @@
-<html>
-  <div aria-hidden="true">
-    <div id="element_to_test" >
-      This text shouldn't be used.
-    </div>
-  </div>
-</html>
diff --git a/src/cobalt/accessibility/testdata/text_alternative/hidden-labelledby.expected b/src/cobalt/accessibility/testdata/text_alternative/hidden-labelledby.expected
deleted file mode 100644
index 78c1792..0000000
--- a/src/cobalt/accessibility/testdata/text_alternative/hidden-labelledby.expected
+++ /dev/null
@@ -1 +0,0 @@
-Hidden labelled by target.
diff --git a/src/cobalt/accessibility/testdata/text_alternative/hidden-labelledby.html b/src/cobalt/accessibility/testdata/text_alternative/hidden-labelledby.html
deleted file mode 100644
index 5294f75..0000000
--- a/src/cobalt/accessibility/testdata/text_alternative/hidden-labelledby.html
+++ /dev/null
@@ -1,8 +0,0 @@
-<html>
-  <div id="element_to_test" aria-labelledby="hidden_target"/>
-  <div aria-hidden="true">
-    <div id="hidden_target" >
-      Hidden labelled by target.
-    </div>
-  </div>
-</html>
diff --git a/src/cobalt/accessibility/testdata/text_alternative/self-reference-labelledby.expected b/src/cobalt/accessibility/testdata/text_alternative/self-reference-labelledby.expected
deleted file mode 100644
index 32de814..0000000
--- a/src/cobalt/accessibility/testdata/text_alternative/self-reference-labelledby.expected
+++ /dev/null
@@ -1 +0,0 @@
-The aria label
diff --git a/src/cobalt/accessibility/testdata/text_alternative/self-reference-labelledby.html b/src/cobalt/accessibility/testdata/text_alternative/self-reference-labelledby.html
deleted file mode 100644
index 6225503..0000000
--- a/src/cobalt/accessibility/testdata/text_alternative/self-reference-labelledby.html
+++ /dev/null
@@ -1,4 +0,0 @@
-<html>
-  <div id="element_to_test" aria-label="The aria label" aria-labelledby="element_to_test">
-  </div>
-</html>
diff --git a/src/cobalt/accessibility/testdata/text_alternative/text-content.expected b/src/cobalt/accessibility/testdata/text_alternative/text-content.expected
deleted file mode 100644
index 401745c..0000000
--- a/src/cobalt/accessibility/testdata/text_alternative/text-content.expected
+++ /dev/null
@@ -1 +0,0 @@
-Use text content
diff --git a/src/cobalt/accessibility/testdata/text_alternative/text-content.html b/src/cobalt/accessibility/testdata/text_alternative/text-content.html
deleted file mode 100644
index 000c8be..0000000
--- a/src/cobalt/accessibility/testdata/text_alternative/text-content.html
+++ /dev/null
@@ -1,5 +0,0 @@
-<html>
-  <div id="element_to_test">
-    Use text content
-  </div>
-</html>
diff --git a/src/cobalt/accessibility/text_alternative.cc b/src/cobalt/accessibility/text_alternative.cc
deleted file mode 100644
index c06731d..0000000
--- a/src/cobalt/accessibility/text_alternative.cc
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright 2017 The Cobalt Authors. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#include "cobalt/accessibility/text_alternative.h"
-
-#include "cobalt/accessibility/internal/text_alternative_helper.h"
-#include "cobalt/dom/document.h"
-#include "cobalt/dom/element.h"
-#include "cobalt/dom/text.h"
-
-namespace cobalt {
-namespace accessibility {
-std::string ComputeTextAlternative(const scoped_refptr<dom::Node>& node) {
-  // Update the computed styles first to ensure that any CSS that would modify
-  // the text contents has been applied (such as :before and :after).
-  if (node->node_document()) {
-    node->node_document()->UpdateComputedStyles();
-  }
-  internal::TextAlternativeHelper helper;
-  helper.AppendTextAlternative(node);
-  return helper.GetTextAlternative();
-}
-}  // namespace accessibility
-}  // namespace cobalt
diff --git a/src/cobalt/accessibility/text_alternative.h b/src/cobalt/accessibility/text_alternative.h
deleted file mode 100644
index c274fce..0000000
--- a/src/cobalt/accessibility/text_alternative.h
+++ /dev/null
@@ -1,32 +0,0 @@
-// Copyright 2017 The Cobalt Authors. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#ifndef COBALT_ACCESSIBILITY_TEXT_ALTERNATIVE_H_
-#define COBALT_ACCESSIBILITY_TEXT_ALTERNATIVE_H_
-
-#include <string>
-
-#include "cobalt/dom/node.h"
-
-namespace cobalt {
-namespace accessibility {
-
-// Compute the Text Alternative for the node per the wai-aria specification:
-// https://www.w3.org/TR/2014/REC-wai-aria-implementation-20140320/#mapping_additional_nd_te
-std::string ComputeTextAlternative(const scoped_refptr<dom::Node>& node);
-
-}  // namespace accessibility
-}  // namespace cobalt
-
-#endif  // COBALT_ACCESSIBILITY_TEXT_ALTERNATIVE_H_
diff --git a/src/cobalt/accessibility/tts_engine.h b/src/cobalt/accessibility/tts_engine.h
deleted file mode 100644
index bba0aae..0000000
--- a/src/cobalt/accessibility/tts_engine.h
+++ /dev/null
@@ -1,36 +0,0 @@
-// Copyright 2017 The Cobalt Authors. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#ifndef COBALT_ACCESSIBILITY_TTS_ENGINE_H_
-#define COBALT_ACCESSIBILITY_TTS_ENGINE_H_
-
-#include <string>
-
-namespace cobalt {
-namespace accessibility {
-// Interface for a TTS (text-to-speech) implementation.
-class TTSEngine {
- public:
-  // Speaks the contents of |text|, pre-empting any utterances that are
-  // currently in progress.
-  virtual void SpeakNow(const std::string& text) = 0;
-  // Queues the contents of |text| to be spoken after any in-progress utterances
-  // are finished.
-  virtual void Speak(const std::string& text) = 0;
-  virtual ~TTSEngine() {}
-};
-}  // namespace accessibility
-}  // namespace cobalt
-
-#endif  // COBALT_ACCESSIBILITY_TTS_ENGINE_H_
diff --git a/src/cobalt/accessibility/tts_logger.h b/src/cobalt/accessibility/tts_logger.h
deleted file mode 100644
index 25d2eed..0000000
--- a/src/cobalt/accessibility/tts_logger.h
+++ /dev/null
@@ -1,40 +0,0 @@
-// Copyright 2017 The Cobalt Authors. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#ifndef COBALT_ACCESSIBILITY_TTS_LOGGER_H_
-#define COBALT_ACCESSIBILITY_TTS_LOGGER_H_
-
-#include <string>
-
-#include "base/logging.h"
-#include "cobalt/accessibility/tts_engine.h"
-
-namespace cobalt {
-namespace accessibility {
-// TTSEngine implementation that just logs the text.
-class TTSLogger : public TTSEngine {
- public:
-  void SpeakNow(const std::string& text) override { LogText(text); }
-  void Speak(const std::string& text) override { LogText(text); }
-
- private:
-  void LogText(const std::string& text) {
-    LOG(INFO) << "Text-to-speech: " << text;
-  }
-  virtual ~TTSLogger() {}
-};
-}  // namespace accessibility
-}  // namespace cobalt
-
-#endif  // COBALT_ACCESSIBILITY_TTS_LOGGER_H_
diff --git a/src/cobalt/audio/audio_device.cc b/src/cobalt/audio/audio_device.cc
index 11ed4d2..8b7159d 100644
--- a/src/cobalt/audio/audio_device.cc
+++ b/src/cobalt/audio/audio_device.cc
@@ -12,6 +12,7 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
+#include <algorithm>
 #include <memory>
 
 #include "cobalt/audio/audio_device.h"
@@ -30,11 +31,7 @@
 
 namespace {
 const int kRenderBufferSizeFrames = 1024;
-// AudioDevice will keep writing silence frames at the end of playback until the
-// buffer is full to ensure the audible frames being played on platforms with
-// strict underflow control. A large |kFramesPerChannel| will increase the
-// silence between two sounds. So it shouldn't be set to a very large number.
-const int kFramesPerChannel = kRenderBufferSizeFrames * 8;
+const int kDefaultFramesPerChannel = 8 * kRenderBufferSizeFrames;
 }  // namespace
 
 class AudioDevice::Impl {
@@ -64,6 +61,7 @@
   int number_of_channels_;
   SbMediaAudioSampleType output_sample_type_;
   RenderCallback* render_callback_;
+  int frames_per_channel_;
 
   // The |render_callback_| returns audio data in planar form.  So we read it
   // into |input_audio_bus_| and convert it into interleaved form and store in
@@ -90,11 +88,19 @@
     : number_of_channels_(number_of_channels),
       output_sample_type_(GetPreferredOutputStarboardSampleType()),
       render_callback_(callback),
+#if SB_API_VERSION >= 11
+      frames_per_channel_(std::max(SbAudioSinkGetMinBufferSizeInFrames(
+                                       number_of_channels, output_sample_type_,
+                                       kStandardOutputSampleRate),
+                                   kDefaultFramesPerChannel)),
+#else  // SB_API_VERSION >= 11
+      frames_per_channel_(kDefaultFramesPerChannel),
+#endif  // SB_API_VERSION >= 11
       input_audio_bus_(static_cast<size_t>(number_of_channels),
                        static_cast<size_t>(kRenderBufferSizeFrames),
                        GetPreferredOutputSampleType(), ShellAudioBus::kPlanar),
       output_frame_buffer_(
-          new uint8[kFramesPerChannel * number_of_channels_ *
+          new uint8[frames_per_channel_ * number_of_channels_ *
                     GetStarboardSampleTypeSize(output_sample_type_)]) {
   DCHECK(number_of_channels_ == 1 || number_of_channels_ == 2)
       << "Invalid number of channels: " << number_of_channels_;
@@ -109,7 +115,7 @@
   audio_sink_ = SbAudioSinkCreate(
       number_of_channels_, kStandardOutputSampleRate, output_sample_type_,
       kSbMediaAudioFrameStorageTypeInterleaved, frame_buffers_,
-      kFramesPerChannel, &AudioDevice::Impl::UpdateSourceStatusFunc,
+      frames_per_channel_, &AudioDevice::Impl::UpdateSourceStatusFunc,
       &AudioDevice::Impl::ConsumeFramesFunc, this);
   DCHECK(SbAudioSinkIsValid(audio_sink_));
 }
@@ -168,7 +174,7 @@
   DCHECK_GE(frames_rendered_, frames_consumed_);
   *frames_in_buffer = static_cast<int>(frames_rendered_ - frames_consumed_);
 
-  if ((kFramesPerChannel - *frames_in_buffer) >= kRenderBufferSizeFrames) {
+  if ((frames_per_channel_ - *frames_in_buffer) >= kRenderBufferSizeFrames) {
     // If there was silence last time we were called, then the buffer has
     // already been zeroed out and we don't need to do it again.
     if (!was_silence_last_update_) {
@@ -197,7 +203,7 @@
     was_silence_last_update_ = silence;
   }
 
-  *offset_in_frames = frames_consumed_ % kFramesPerChannel;
+  *offset_in_frames = frames_consumed_ % frames_per_channel_;
 }
 
 void AudioDevice::Impl::ConsumeFrames(int frames_consumed) {
@@ -208,7 +214,7 @@
 inline void AudioDevice::Impl::FillOutputAudioBusForType() {
   // Determine the offset into the audio bus that represents the tail of
   // buffered data.
-  uint64 channel_offset = frames_rendered_ % kFramesPerChannel;
+  uint64 channel_offset = frames_rendered_ % frames_per_channel_;
 
   OutputType* output_buffer =
       reinterpret_cast<OutputType*>(output_frame_buffer_.get());
diff --git a/src/cobalt/base/wrap_main_starboard.h b/src/cobalt/base/wrap_main_starboard.h
index 4dfa576..7ff43f1 100644
--- a/src/cobalt/base/wrap_main_starboard.h
+++ b/src/cobalt/base/wrap_main_starboard.h
@@ -24,6 +24,9 @@
 #include "starboard/client_porting/wrap_main/wrap_main.h"
 #include "starboard/event.h"
 #include "starboard/system.h"
+#if SB_IS(EVERGREEN)
+#include "third_party/musl/src/starboard/internal/hwcap_impl.h"
+#endif
 
 namespace cobalt {
 namespace wrap_main {
@@ -42,6 +45,9 @@
       DCHECK(!g_started);
       DCHECK(!g_at_exit);
       g_at_exit = new base::AtExitManager();
+#if SB_IS(EVERGREEN)
+      init_musl_hwcap();
+#endif
       InitCobalt(data->argument_count, data->argument_values, data->link);
 
       DCHECK(!g_loop);
@@ -59,7 +65,9 @@
       if (!g_started) {
         DCHECK(!g_at_exit);
         g_at_exit = new base::AtExitManager();
-
+#if SB_IS(EVERGREEN)
+        init_musl_hwcap();
+#endif
         InitCobalt(data->argument_count, data->argument_values, data->link);
 
         DCHECK(!g_loop);
diff --git a/src/cobalt/bindings/README.md b/src/cobalt/bindings/README.md
index d276dc4..bb956cc 100644
--- a/src/cobalt/bindings/README.md
+++ b/src/cobalt/bindings/README.md
@@ -151,7 +151,7 @@
 
 # script/$engine
 
-Then, we designate a specific area of code to be our engine specific implementation of the interfaces established in script.  We [commit to an engine at gyp time](https://cs.corp.google.com/cobalt/starboard/build/platform_configuration.py?type=cs&q=file:py+%27javascript_engine%27&sq=package:%5Ecobalt$&g=0#223), and then based on that, [select the appropriate set of files](https://cobalt.googlesource.com/cobalt/+/2a8c847d785c1602f60915c8e0112e0aec6a15a5/src/cobalt/script/engine.gyp?type=cs&q=file:cobalt+file:gyp+javascript_engine&sq=package:%5Ecobalt$&g=0#26).  This is the only area of Cobalt code (except for bindings/*/$engine, which is essentially more of the same stuff) that is allowed to include engine specific headers (files in v8/ and third_party/mozjs-45/).  Maintaining this abstraction has been useful throughout our multiple JavaScript engine migrations over the years.
+Then, we designate a specific area of code to be our engine specific implementation of the interfaces established in script.  We commit to an engine at gyp time, and then based on that, [select the appropriate set of files](https://cobalt.googlesource.com/cobalt/+/2a8c847d785c1602f60915c8e0112e0aec6a15a5/src/cobalt/script/engine.gyp?type=cs&q=file:cobalt+file:gyp+javascript_engine&sq=package:%5Ecobalt$&g=0#26).  This is the only area of Cobalt code (except for bindings/*/$engine, which is essentially more of the same stuff) that is allowed to include engine specific headers (files in v8/ and third_party/mozjs-45/).  Maintaining this abstraction has been useful throughout our multiple JavaScript engine migrations over the years.
 
 A large portion of script/$engine is filling in the types discussed in the previous section.  So [V8cEngine](https://cobalt.googlesource.com/cobalt/+/2a8c847d785c1602f60915c8e0112e0aec6a15a5/src/cobalt/script/v8c/v8c_engine.h?q=V8cEngine&sq=package:%5Ecobalt$&dr=CSs#31) implements JavaScriptEngine by wrapping a v8::Isolate, and [V8cGlobalEnvironment](https://cobalt.googlesource.com/cobalt/+/2a8c847d785c1602f60915c8e0112e0aec6a15a5/src/cobalt/script/v8c/v8c_global_environment.h?type=cs&q=V8cGlobalEnvironment&sq=package:%5Ecobalt$&g=0#44) implements GlobalEnvironment by wrapping a v8::Context.  Note that these files are actually quite a bit bigger than just being thin wrappers over the V8 types, as they have more work to do in addition to just implementing their script interfaces, such as [maintaining state necessary for bindings](https://cobalt.googlesource.com/cobalt/+/2a8c847d785c1602f60915c8e0112e0aec6a15a5/src/cobalt/script/v8c/v8c_global_environment.h?type=cs&q=V8cGlobalEnvironment&sq=package:%5Ecobalt$&g=0#175) (interface objects need to be owned somewhere), [serving as a bridge between the Isolate](https://cobalt.googlesource.com/cobalt/+/2a8c847d785c1602f60915c8e0112e0aec6a15a5/src/cobalt/script/v8c/v8c_global_environment.h?type=cs&q=V8cGlobalEnvironment&sq=package:%5Ecobalt$&g=0#49), and [dealing with garbage collection interaction](https://cobalt.googlesource.com/cobalt/+/2a8c847d785c1602f60915c8e0112e0aec6a15a5/src/cobalt/script/v8c/v8c_engine.h?q=V8cEngine&sq=package:%5Ecobalt$&dr=CSs#61) (the engine specific [script::Tracer](https://cobalt.googlesource.com/cobalt/+/2a8c847d785c1602f60915c8e0112e0aec6a15a5/src/cobalt/script/tracer.h?type=cs&q=script::Tracer&sq=package:%5Ecobalt$&g=0#54) is implemented near them).
 
diff --git a/src/cobalt/browser/application.cc b/src/cobalt/browser/application.cc
index 4ab000d..277a0e3 100644
--- a/src/cobalt/browser/application.cc
+++ b/src/cobalt/browser/application.cc
@@ -18,14 +18,10 @@
 
 #include "cobalt/browser/application.h"
 
-#include <algorithm>
-#include <map>
 #include <memory>
 #include <string>
 #include <vector>
 
-#include "base/base64.h"
-#include "base/base64url.h"
 #include "base/command_line.h"
 #include "base/lazy_instance.h"
 #include "base/logging.h"
@@ -57,6 +53,7 @@
 #include "cobalt/base/version_compatibility.h"
 #endif  // defined(COBALT_ENABLE_VERSION_COMPATIBILITY_VALIDATIONS)
 #include "cobalt/base/window_size_changed_event.h"
+#include "cobalt/browser/device_authentication.h"
 #include "cobalt/browser/memory_settings/auto_mem_settings.h"
 #include "cobalt/browser/memory_tracker/tool.h"
 #include "cobalt/browser/switches.h"
@@ -68,8 +65,6 @@
 #endif  // defined(ENABLE_DEBUG_COMMAND_LINE_SWITCHES)
 #include "cobalt/system_window/input_event.h"
 #include "cobalt/trace_event/scoped_trace_to_file.h"
-#include "crypto/hmac.h"
-#include "net/base/escape.h"
 #include "starboard/configuration.h"
 #include "url/gurl.h"
 
@@ -159,56 +154,6 @@
 }
 #endif  // ENABLE_WEBDRIVER
 
-#if SB_API_VERSION >= 11
-std::string NumberToFourByteString(size_t n) {
-  std::string str;
-  str += static_cast<char>(((n & 0xff000000) >> 24));
-  str += static_cast<char>(((n & 0x00ff0000) >> 16));
-  str += static_cast<char>(((n & 0x0000ff00) >> 8));
-  str += static_cast<char>((n & 0x000000ff));
-  return str;
-}
-
-std::string BuildMessageFragment(const std::string& key,
-                                 const std::string& value) {
-  std::string msg_fragment = NumberToFourByteString(key.length()) + key +
-                             NumberToFourByteString(value.length()) + value;
-  return msg_fragment;
-}
-
-std::string ComputeSignature(const std::string& cert_scope,
-                             const std::string& start_time,
-                             const std::string& base_64_secret) {
-  const size_t kSHA256DigestSize = 32;
-
-  // Build signed_msg from cert_scope and start_time.
-  std::string signed_msg = BuildMessageFragment("cert_scope", cert_scope);
-  signed_msg += BuildMessageFragment("start_time", start_time);
-
-  // Decode secret from base_64_secret.
-  std::string secret;
-  base::Base64Decode(base_64_secret, &secret);
-
-  // Generate signature from signed_msg using HMAC-SHA256.
-  unsigned char signature_hash[kSHA256DigestSize] = {0};
-  crypto::HMAC hmac(crypto::HMAC::SHA256);
-  if (!hmac.Init(secret)) {
-    DLOG(ERROR) << "Unable to initialize HMAC-SHA256.";
-  }
-  if (!hmac.Sign(signed_msg, signature_hash, kSHA256DigestSize)) {
-    DLOG(ERROR) << "Unable to sign HMAC-SHA256.";
-  }
-  std::string signature(signature_hash, signature_hash + kSHA256DigestSize);
-
-  // Encode base_64_url_signature from signature.
-  std::string base_64_url_signature;
-  base::Base64UrlEncode(signature, base::Base64UrlEncodePolicy::OMIT_PADDING,
-                        &base_64_url_signature);
-
-  return base_64_url_signature;
-}
-#endif  // SB_API_VERSION >= 11
-
 GURL GetInitialURL() {
   GURL initial_url = GURL(kDefaultURL);
   // Allow the user to override the default URL via a command line parameter.
@@ -224,59 +169,21 @@
   }
 
 #if SB_API_VERSION >= 11
-  // Get cert_scope and base_64_secret
-  const size_t kCertificationScopeLength = 1023;
-  char cert_scope_property[kCertificationScopeLength + 1] = {0};
-  bool result =
-      SbSystemGetProperty(kSbSystemPropertyCertificationScope,
-                          cert_scope_property, kCertificationScopeLength);
-  if (!result) {
-    DLOG(ERROR) << "Unable to get kSbSystemPropertyCertificationScope";
-    return initial_url;
-  }
-  std::string cert_scope(cert_scope_property);
-
-  const size_t kBase64EncodedCertificationSecretLength = 1023;
-  char base_64_secret_property[kBase64EncodedCertificationSecretLength + 1] = {
-      0};
-  result = SbSystemGetProperty(
-      kSbSystemPropertyBase64EncodedCertificationSecret,
-      base_64_secret_property, kBase64EncodedCertificationSecretLength);
-  if (!result) {
-    DLOG(ERROR)
-        << "Unable to get kSbSystemPropertyBase64EncodedCertificationSecret";
-    return initial_url;
-  }
-  std::string base_64_secret(base_64_secret_property);
-
-  // Get current unix time in seconds.
-  std::string start_time =
-      std::to_string(static_cast<int64>(base::Time::Now().ToDoubleT()));
-
-  // Add signed_query to the initial_url.
-  std::map<std::string, std::string> signed_query;
-  signed_query["cert_scope"] = cert_scope;
-  signed_query["start_time"] = start_time;
-  signed_query["sig"] =
-      ComputeSignature(cert_scope, start_time, base_64_secret);
-
+  // Append the device authentication query parameters based on the platform's
+  // certification secret to the initial URL.
   std::string query = initial_url.query();
-  std::map<std::string, std::string>::iterator it = signed_query.begin();
-  while (it != signed_query.end()) {
-    std::string key = it->first;
-    std::string value = it->second;
-
-    if (!query.empty()) query += "&";
-    query += net::EscapeQueryParamValue(key, true);
-    if (!value.empty()) {
-      query += "=" + net::EscapeQueryParamValue(value, true);
-    }
-    it++;
+  std::string device_authentication_query_string =
+      GetDeviceAuthenticationSignedURLQueryString();
+  if (!query.empty() && !device_authentication_query_string.empty()) {
+    query += "&";
   }
+  query += device_authentication_query_string;
 
-  GURL::Replacements replacements;
-  replacements.SetQueryStr(query);
-  initial_url = initial_url.ReplaceComponents(replacements);
+  if (!query.empty()) {
+    GURL::Replacements replacements;
+    replacements.SetQueryStr(query);
+    initial_url = initial_url.ReplaceComponents(replacements);
+  }
 #endif  // SB_API_VERSION >= 11
 
   return initial_url;
diff --git a/src/cobalt/browser/browser.gyp b/src/cobalt/browser/browser.gyp
index 7b04429..5ac69e0 100644
--- a/src/cobalt/browser/browser.gyp
+++ b/src/cobalt/browser/browser.gyp
@@ -28,6 +28,8 @@
         'application.h',
         'browser_module.cc',
         'browser_module.h',
+        'device_authentication.cc',
+        'device_authentication.h',
         'lifecycle_observer.h',
         'memory_settings/auto_mem.cc',
         'memory_settings/auto_mem.h',
@@ -126,7 +128,6 @@
       ],
       'dependencies': [
         '<@(cobalt_platform_dependencies)',
-        '<(DEPTH)/cobalt/accessibility/accessibility.gyp:accessibility',
         '<(DEPTH)/cobalt/account/account.gyp:account',
         '<(DEPTH)/cobalt/audio/audio.gyp:audio',
         '<(DEPTH)/cobalt/base/base.gyp:base',
@@ -219,6 +220,7 @@
       'target_name': 'browser_test',
       'type': '<(gtest_target_type)',
       'sources': [
+        'device_authentication_test.cc',
         'storage_upgrade_handler_test.cc',
         'memory_settings/auto_mem_test.cc',
         'memory_settings/auto_mem_settings_test.cc',
diff --git a/src/cobalt/browser/browser_bindings_gen.gyp b/src/cobalt/browser/browser_bindings_gen.gyp
index 6a50f63..4d50786 100644
--- a/src/cobalt/browser/browser_bindings_gen.gyp
+++ b/src/cobalt/browser/browser_bindings_gen.gyp
@@ -52,7 +52,6 @@
         '../dom/audio_track.idl',
         '../dom/audio_track_list.idl',
         '../dom/blob.idl',
-        '../dom/c_val_key_list.idl',
         '../dom/c_val_view.idl',
         '../dom/camera_3d.idl',
         '../dom/captions/system_caption_settings.idl',
@@ -175,7 +174,6 @@
         '../h5vcc/h5vcc_runtime_event_target.idl',
         '../h5vcc/h5vcc_settings.idl',
         '../h5vcc/h5vcc_sso.idl',
-        '../h5vcc/h5vcc_storage.idl',
         '../h5vcc/h5vcc_system.idl',
         '../h5vcc/h5vcc_trace_event.idl',
 
diff --git a/src/cobalt/browser/debug_console.cc b/src/cobalt/browser/debug_console.cc
index 27f4263..b769196 100644
--- a/src/cobalt/browser/debug_console.cc
+++ b/src/cobalt/browser/debug_console.cc
@@ -56,21 +56,6 @@
   }
 }
 
-// Convert from mode to string.
-std::string DebugConsoleModeIntToString(int mode) {
-  switch (mode) {
-    case debug::console::DebugHub::kDebugConsoleHud:
-      return kDebugConsoleHudString;
-    case debug::console::DebugHub::kDebugConsoleOn:
-      return kDebugConsoleOnString;
-    case debug::console::DebugHub::kDebugConsoleOff:
-      return kDebugConsoleOffString;
-    default:
-      NOTREACHED();
-      return kDebugConsoleOffString;
-  }
-}
-
 // Returns the debug console mode as specified by the command line.
 // If unspecified by the command line, base::nullopt is returned.
 base::Optional<int> GetDebugConsoleModeFromCommandLine() {
@@ -86,45 +71,6 @@
   return base::nullopt;
 }
 
-// Returns the path of the temporary file used to store debug console visibility
-// mode preferences.
-bool GetDebugConsoleModeStoragePath(base::FilePath* out_file_path) {
-  DCHECK(out_file_path);
-  if (base::PathService::Get(cobalt::paths::DIR_COBALT_DEBUG_OUT,
-                             out_file_path)) {
-    *out_file_path = out_file_path->Append("last_debug_console_mode.txt");
-    return true;
-  } else {
-    return false;
-  }
-}
-
-// Saves the specified visibility mode preferences to disk so that they can
-// be restored in another session.  Since this functionality is not critical,
-// we silently do nothing if there is a failure.
-void SaveModeToPreferences(int mode) {
-  std::string mode_string = DebugConsoleModeIntToString(mode);
-  base::FilePath preferences_file;
-  if (GetDebugConsoleModeStoragePath(&preferences_file)) {
-    base::WriteFile(preferences_file, mode_string.c_str(),
-                    static_cast<int>(mode_string.size()));
-  }
-}
-
-// Load debug console visibility mode preferences from disk.  Since this
-// functionality is not critical, we silently do nothing if there is a failure.
-base::Optional<int> LoadModeFromPreferences() {
-  std::string saved_contents;
-  base::FilePath preferences_file;
-  if (GetDebugConsoleModeStoragePath(&preferences_file)) {
-    if (base::ReadFileToString(preferences_file, &saved_contents)) {
-      return DebugConsoleModeStringToInt(saved_contents);
-    }
-  }
-
-  return base::nullopt;
-}
-
 // Returns the debug console's initial visibility mode.
 int GetInitialMode() {
   // First check to see if the mode is explicitly set from the command line.
@@ -134,13 +80,7 @@
     return *mode_from_command_line;
   }
 
-  // Now check to see if mode preferences have been saved to disk.
-  base::Optional<int> mode_from_preferences = LoadModeFromPreferences();
-  if (mode_from_preferences) {
-    return *mode_from_preferences;
-  }
-
-  // If all else fails, default the debug console to off.
+  // By default the debug console is off.
   return debug::console::DebugHub::kDebugConsoleOff;
 }
 
@@ -239,23 +179,13 @@
 #endif  // SB_HAS(ON_SCREEN_KEYBOARD)
 
 void DebugConsole::SetMode(int mode) {
-  int mode_to_save;
-  {
-    base::AutoLock lock(mode_mutex_);
-    mode_ = mode;
-    mode_to_save = mode_;
-  }
-  SaveModeToPreferences(mode_to_save);
+  base::AutoLock lock(mode_mutex_);
+  mode_ = mode;
 }
 
 void DebugConsole::CycleMode() {
-  int mode_to_save;
-  {
-    base::AutoLock lock(mode_mutex_);
-    mode_ = (mode_ + 1) % debug::console::DebugHub::kDebugConsoleNumModes;
-    mode_to_save = mode_;
-  }
-  SaveModeToPreferences(mode_to_save);
+  base::AutoLock lock(mode_mutex_);
+  mode_ = (mode_ + 1) % debug::console::DebugHub::kDebugConsoleNumModes;
 }
 
 int DebugConsole::GetMode() {
diff --git a/src/cobalt/browser/device_authentication.cc b/src/cobalt/browser/device_authentication.cc
new file mode 100644
index 0000000..7c8eeea
--- /dev/null
+++ b/src/cobalt/browser/device_authentication.cc
@@ -0,0 +1,200 @@
+// Copyright 2019 The Cobalt Authors. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#include "cobalt/browser/device_authentication.h"
+
+#include <algorithm>
+#include <map>
+
+#include "base/base64.h"
+#include "base/base64url.h"
+#include "base/logging.h"
+#include "base/time/time.h"
+#include "crypto/hmac.h"
+#include "net/base/escape.h"
+#include "starboard/system.h"
+
+namespace cobalt {
+namespace browser {
+
+#if SB_API_VERSION >= 11
+
+namespace {
+
+constexpr size_t kSHA256DigestSize = 32;
+
+bool ComputeSignatureWithSystemPropertySecret(const std::string& message,
+                                              uint8_t* signature) {
+  const size_t kBase64EncodedCertificationSecretLength = 1023;
+  char base_64_secret_property[kBase64EncodedCertificationSecretLength + 1] = {
+      0};
+  bool result = SbSystemGetProperty(
+      kSbSystemPropertyBase64EncodedCertificationSecret,
+      base_64_secret_property, kBase64EncodedCertificationSecretLength);
+  if (!result) {
+    return false;
+  }
+
+  ComputeHMACSHA256SignatureWithProvidedKey(message, base_64_secret_property,
+                                            signature, kSHA256DigestSize);
+  return true;
+}
+
+bool ComputeSignatureFromSignAPI(const std::string& message,
+                                 uint8_t* signature) {
+  return SbSystemSignWithCertificationSecretKey(
+      reinterpret_cast<const uint8_t*>(message.data()), message.size(),
+      signature, kSHA256DigestSize);
+}
+
+// Check to see if we can query the platform for the secret key.  If so,
+// go ahead and use it to sign the message, otherwise try to use the
+// SbSystemSignWithCertificationSecretKey() method to sign the message.  If
+// both methods fail, return an empty string.
+std::string ComputeBase64Signature(const std::string& message) {
+  uint8_t signature[kSHA256DigestSize];
+
+  if (ComputeSignatureFromSignAPI(message, signature)) {
+    DLOG(INFO) << "Using certification signature provided by "
+               << "SbSystemSignWithCertificationSecretKey().";
+  } else if (ComputeSignatureWithSystemPropertySecret(message, signature)) {
+    DLOG(INFO) << "Using certification key from SbSystemGetProperty().";
+  } else {
+    return std::string();
+  }
+
+  std::string base_64_url_signature;
+  base::Base64UrlEncode(std::string(signature, signature + kSHA256DigestSize),
+                        base::Base64UrlEncodePolicy::OMIT_PADDING,
+                        &base_64_url_signature);
+  return base_64_url_signature;
+}
+
+std::string NumberToFourByteString(size_t n) {
+  std::string str;
+  str += static_cast<char>(((n & 0xff000000) >> 24));
+  str += static_cast<char>(((n & 0x00ff0000) >> 16));
+  str += static_cast<char>(((n & 0x0000ff00) >> 8));
+  str += static_cast<char>((n & 0x000000ff));
+  return str;
+}
+
+// Used by ComputeMessage() to create a message component as a string.
+std::string BuildMessageFragment(const std::string& key,
+                                 const std::string& value) {
+  std::string msg_fragment = NumberToFourByteString(key.length()) + key +
+                             NumberToFourByteString(value.length()) + value;
+  return msg_fragment;
+}
+
+// Returns the certification scope provided by the platform to use with device
+// authentication.
+std::string GetCertScopeFromPlatform() {
+  // Get cert_scope and base_64_secret
+  const size_t kCertificationScopeLength = 1023;
+  char cert_scope_property[kCertificationScopeLength + 1] = {0};
+  bool result =
+      SbSystemGetProperty(kSbSystemPropertyCertificationScope,
+                          cert_scope_property, kCertificationScopeLength);
+  if (!result) {
+    DLOG(ERROR) << "Unable to get kSbSystemPropertyCertificationScope";
+    return std::string();
+  }
+
+  return cert_scope_property;
+}
+
+// Returns the start time provided by the platform for use with device
+// authentication.
+std::string GetStartTime() {
+  return std::to_string(static_cast<int64_t>(base::Time::Now().ToDoubleT()));
+}
+
+}  // namespace
+
+std::string GetDeviceAuthenticationSignedURLQueryString() {
+  std::string cert_scope = GetCertScopeFromPlatform();
+  if (cert_scope.empty()) {
+    LOG(WARNING) << "Error retrieving certification scope required for "
+                 << "device authentication.";
+    return std::string();
+  }
+  std::string start_time = GetStartTime();
+  CHECK(!start_time.empty());
+
+  std::string base64_signature =
+      ComputeBase64Signature(ComputeMessage(cert_scope, start_time));
+
+  return GetDeviceAuthenticationSignedURLQueryStringFromComponents(
+      cert_scope, start_time, base64_signature);
+}
+
+std::string GetDeviceAuthenticationSignedURLQueryStringFromComponents(
+    const std::string& cert_scope, const std::string& start_time,
+    const std::string& base64_signature) {
+  CHECK(!cert_scope.empty());
+  CHECK(!start_time.empty());
+
+  std::map<std::string, std::string> signed_query_components;
+  signed_query_components["cert_scope"] = cert_scope;
+  signed_query_components["start_time"] = start_time;
+  signed_query_components["sig"] = base64_signature;
+
+  std::string query;
+  for (const auto& query_component : signed_query_components) {
+    const std::string& key = query_component.first;
+    const std::string& value = query_component.second;
+
+    if (!query.empty()) query += "&";
+    query += net::EscapeQueryParamValue(key, true);
+    if (!value.empty()) {
+      query += "=" + net::EscapeQueryParamValue(value, true);
+    }
+  }
+
+  return query;
+}
+
+// Combine multiple message components into a string that will be used as the
+// message that we will sign.
+std::string ComputeMessage(const std::string& cert_scope,
+                           const std::string& start_time) {
+  // Build message from cert_scope and start_time.
+  return BuildMessageFragment("cert_scope", cert_scope) +
+         BuildMessageFragment("start_time", start_time);
+}
+
+void ComputeHMACSHA256SignatureWithProvidedKey(const std::string& message,
+                                               const std::string& base64_key,
+                                               uint8_t* signature,
+                                               size_t signature_size_in_bytes) {
+  CHECK_GE(signature_size_in_bytes, 32U);
+
+  std::string key;
+  base::Base64Decode(base64_key, &key);
+
+  // Generate signature from message using HMAC-SHA256.
+  crypto::HMAC hmac(crypto::HMAC::SHA256);
+  if (!hmac.Init(key)) {
+    DLOG(ERROR) << "Unable to initialize HMAC-SHA256.";
+  }
+  if (!hmac.Sign(message, signature, signature_size_in_bytes)) {
+    DLOG(ERROR) << "Unable to sign HMAC-SHA256.";
+  }
+}
+
+#endif  // SB_API_VERSION >= 11
+
+}  // namespace browser
+}  // namespace cobalt
diff --git a/src/cobalt/browser/device_authentication.h b/src/cobalt/browser/device_authentication.h
new file mode 100644
index 0000000..f3ca94b
--- /dev/null
+++ b/src/cobalt/browser/device_authentication.h
@@ -0,0 +1,60 @@
+// Copyright 2019 The Cobalt Authors. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#ifndef COBALT_BROWSER_DEVICE_AUTHENTICATION_H_
+#define COBALT_BROWSER_DEVICE_AUTHENTICATION_H_
+
+#include <string>
+
+#include "starboard/configuration.h"
+#include "starboard/types.h"
+
+namespace cobalt {
+namespace browser {
+
+#if SB_API_VERSION >= 11
+
+// Returns a base64 encoded SHA256 hash representing the device authentication
+// signature based on the device certification scope and the current time.
+std::string GetDeviceAuthenticationSignedURLQueryString();
+
+// The following methods are deterministic helper functions used in the
+// implementation of the public method above.  They are declared here so that
+// they can be tested in (white box) unit tests.
+
+// Similar to the method above, but all platform queries are resolved to make
+// this a deterministic and testable function.
+std::string GetDeviceAuthenticationSignedURLQueryStringFromComponents(
+    const std::string& cert_scope, const std::string& start_time,
+    const std::string& base64_signature);
+
+// Given the certification parameters, computes a message to be used as input
+// to the signing process.
+std::string ComputeMessage(const std::string& cert_scope,
+                           const std::string& start_time);
+
+// Given a message (arbitrary sequence of bytes) and a base64-encoded key
+// key, compute the HMAC-SHA256 signature and store it in the |signature_hash|
+// out parameter.  Note that 32 bytes will be written to the output hash, it is
+// an error if |signature_hash_size_in_bytes| is less than 32.
+void ComputeHMACSHA256SignatureWithProvidedKey(
+    const std::string& message, const std::string& base64_key,
+    uint8_t* signature_hash, size_t signature_hash_size_in_bytes);
+
+#endif  // SB_API_VERSION >= 11
+
+}  // namespace browser
+}  // namespace cobalt
+
+#endif  // COBALT_BROWSER_DEVICE_AUTHENTICATION_H_
diff --git a/src/cobalt/browser/device_authentication_test.cc b/src/cobalt/browser/device_authentication_test.cc
new file mode 100644
index 0000000..a820d94
--- /dev/null
+++ b/src/cobalt/browser/device_authentication_test.cc
@@ -0,0 +1,146 @@
+// Copyright 2019 The Cobalt Authors. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#include "cobalt/browser/device_authentication.h"
+
+#include "base/base64.h"
+#include "base/base64url.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+namespace cobalt {
+namespace browser {
+
+#if SB_API_VERSION >= 11
+
+constexpr size_t kSHA256DigestSize = 32;
+
+namespace {
+
+std::string ToBase64Message(const std::string& cert_scope,
+                            const std::string& start_time) {
+  std::string base64_message;
+  CHECK(base::Base64Encode(browser::ComputeMessage(cert_scope, start_time),
+                           &base64_message));
+  return base64_message;
+}
+
+std::string ComputeBase64URLSignatureFromBase64Message(
+    const std::string& base64_message, const std::string& base64_secret_key) {
+  uint8_t signature[kSHA256DigestSize];
+
+  std::string message;
+  CHECK(base::Base64Decode(base64_message, &message));
+  ComputeHMACSHA256SignatureWithProvidedKey(message, base64_secret_key,
+                                            signature, kSHA256DigestSize);
+
+  std::string base_64_url_signature;
+  base::Base64UrlEncode(std::string(signature, signature + kSHA256DigestSize),
+                        base::Base64UrlEncodePolicy::OMIT_PADDING,
+                        &base_64_url_signature);
+  return base_64_url_signature;
+}
+
+std::string CreateSignedURLQueryString(const std::string& cert_scope,
+                                       const std::string& start_time,
+                                       const std::string& base64_secret_key) {
+  return GetDeviceAuthenticationSignedURLQueryStringFromComponents(
+      cert_scope, start_time,
+      ComputeBase64URLSignatureFromBase64Message(
+          ToBase64Message(cert_scope, start_time), base64_secret_key));
+}
+
+}  // namespace
+
+TEST(DeviceAuthenticationTest, ComputeMessageTest) {
+  EXPECT_EQ(
+      "AAAACmNlcnRfc2NvcGUAAAANbXktY2VydC1zY29wZQAAAApzdGFydF90aW1lAAAACjE1NjUx"
+      "NjE1NTY=",
+      ToBase64Message("my-cert-scope", "1565161556"));
+  EXPECT_EQ(
+      "AAAACmNlcnRfc2NvcGUAAAATbXktb3RoZXItY2VydC1zY29wZQAAAApzdGFydF90aW1lAAAA"
+      "CjE1NjUxNjMwNjU=",
+      ToBase64Message("my-other-cert-scope", "1565163065"));
+  EXPECT_EQ(
+      "AAAACmNlcnRfc2NvcGUAAAATbXktb3RoZXItY2VydC1zY29wZQAAAApzdGFydF90aW1lAAAA"
+      "CjE1NjUxNjMyNDU=",
+      ToBase64Message("my-other-cert-scope", "1565163245"));
+  EXPECT_EQ(
+      "AAAACmNlcnRfc2NvcGUAAAATbXktb3RoZXItY2VydC1zY29wZQAAAApzdGFydF90aW1lAAAA"
+      "CjI3OTAzMjY2Mzk=",
+      ToBase64Message("my-other-cert-scope", "2790326639"));
+  EXPECT_EQ(
+      "AAAACmNlcnRfc2NvcGUAAAAEeWFjcwAAAApzdGFydF90aW1lAAAACjEzNDAwMDAzMTI=",
+      ToBase64Message("yacs", "1340000312"));
+}
+
+TEST(DeviceAuthenticationTest, ComputeSignatureWithProvidedSecretTest) {
+  EXPECT_EQ("5duoLo5TELzyMQ6Fz-nmtLH3-nR4GrYfJ5RqTWU33LY",
+            ComputeBase64URLSignatureFromBase64Message(
+                "AAAACmNlcnRfc2NvcGUAAAANbXktY2VydC1zY29wZQAAAApzdGFydF90aW1lAA"
+                "AACjE1NjUxNjE1NTY=",
+                "abcdefghijklmnop1234567890abcdefghijklmnopqr"));
+  EXPECT_EQ("zrHJxDjsg60vF-fnGD9J7QaK2fw2QEZD7PIIfHMYmUg",
+            ComputeBase64URLSignatureFromBase64Message(
+                "AAAACmNlcnRfc2NvcGUAAAATbXktb3RoZXItY2VydC1zY29wZQAAAApzdGFydF"
+                "90aW1lAAAACjE1NjUxNjMwNjU=",
+                "abcdefghijklmnop1234567890abcdefghijklmnopqr"));
+  EXPECT_EQ("FnycnpFnmzgcNBIdJoymQvrS0_1uet_bmCtpuAmQR2s",
+            ComputeBase64URLSignatureFromBase64Message(
+                "AAAACmNlcnRfc2NvcGUAAAATbXktb3RoZXItY2VydC1zY29wZQAAAApzdGFydF"
+                "90aW1lAAAACjE1NjUxNjMyNDU=",
+                "abcdefghi5555nop1234567890abcdef5555klmn6666"));
+  EXPECT_EQ("N-nDY11_8HWFKEZPiQenQrC3SXuuPahs-er-n7Xh6ig",
+            ComputeBase64URLSignatureFromBase64Message(
+                "AAAACmNlcnRfc2NvcGUAAAATbXktb3RoZXItY2VydC1zY29wZQAAAApzdGFydF"
+                "90aW1lAAAACjI3OTAzMjY2Mzk=",
+                "abcdefghi5555nop1234567890abcdef5555klmn6666"));
+  EXPECT_EQ("dX0apAEsG2yWm9da6qTded4qd-mqgExeuJam99z-AHk",
+            ComputeBase64URLSignatureFromBase64Message(
+                "AAAACmNlcnRfc2NvcGUAAAAEeWFjcwAAAApzdGFydF90aW1lAAAACjEzNDAwMD"
+                "AzMTI=",
+                "11111111111111111111111111111111111111111111"));
+}
+
+// This is the main end-to-end test for device authentication.
+TEST(DeviceAuthenticationTest,
+     GetDeviceAuthenticationSignedURLQueryStringFromComponentsTest) {
+  EXPECT_EQ(
+      "cert_scope=my-cert-scope&sig=5duoLo5TELzyMQ6Fz-nmtLH3-"
+      "nR4GrYfJ5RqTWU33LY&start_time=1565161556",
+      CreateSignedURLQueryString(
+          "my-cert-scope", "1565161556",
+          "abcdefghijklmnop1234567890abcdefghijklmnopqr"));
+  EXPECT_EQ(
+      "cert_scope=my-other-cert-scope&sig="
+      "Lf2zunrdhjH8q3ehdUy0tneTtamWigcyTgQl7zxWgnQ&start_time=123456789",
+      CreateSignedURLQueryString(
+          "my-other-cert-scope", "123456789",
+          "abcdefghijklmnop1234567890abcdefghijklmnopqr"));
+  EXPECT_EQ(
+      "cert_scope=my-other-cert-scope&sig="
+      "c5YZB0Rtv8Nf8gLSbE052ZvCUEpouP28nUq77FEgg88&start_time=11111111",
+      CreateSignedURLQueryString(
+          "my-other-cert-scope", "11111111",
+          "11111111111111111111111111111111111111111111"));
+  EXPECT_EQ(
+      "cert_scope=yacs&sig=YKjLEzSl2_ub-05Ajaww0HOOPElxEPUc4SEiQnGAfaE&start_"
+      "time=11111111",
+      CreateSignedURLQueryString(
+          "yacs", "11111111", "11111111111111111111111111111111111111111111"));
+}
+
+#endif  // SB_API_VERSION >= 11
+
+}  // namespace browser
+}  // namespace cobalt
diff --git a/src/cobalt/browser/trace_manager.h b/src/cobalt/browser/trace_manager.h
deleted file mode 100644
index b774f11..0000000
--- a/src/cobalt/browser/trace_manager.h
+++ /dev/null
@@ -1,78 +0,0 @@
-// Copyright 2016 The Cobalt Authors. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#ifndef COBALT_BROWSER_TRACE_MANAGER_H_
-#define COBALT_BROWSER_TRACE_MANAGER_H_
-
-#include <map>
-#include <string>
-
-#include "base/threading/thread_checker.h"
-#include "cobalt/debug/console/command_manager.h"
-#include "cobalt/trace_event/event_parser.h"
-#include "cobalt/trace_event/scoped_trace_to_file.h"
-
-namespace cobalt {
-namespace browser {
-
-// Wrapper class which wraps all trace related stuff.
-class TraceManager {
- public:
-  // Returns whether there's a trace that is active.
-  static bool IsTracing();
-
-  TraceManager();
-
-  // Called by browser module when an input event is produced.
-  void OnInputEventProduced();
-
-  // Message handler callback for trace message from debug console.
-  void OnTraceMessage(const std::string& message);
-
-  // Message handler callback for input trace message from debug console.
-  void OnInputTraceMessage(const std::string& message);
-
-  // Called when receiving and finishing receiving parsed trace events.
-  void OnReceiveTraceEvent(
-      const scoped_refptr<trace_event::EventParser::ScopedEvent>& event);
-  void OnFinishReceiveTraceEvent();
-
- private:
-  typedef std::multimap<int64,
-                        scoped_refptr<trace_event::EventParser::ScopedEvent> >
-      StartTimeToEventMap;
-
-  // The message loop on which we'll do all our work.
-  MessageLoop* const self_message_loop_;
-
-  // Command handler object for trace command from the debug console.
-  debug::console::ConsoleCommandManager::CommandHandler trace_command_handler_;
-  // Command handler object for input trace command from the debug console.
-  debug::console::ConsoleCommandManager::CommandHandler
-      input_trace_command_handler_;
-  // Whether input tracing is enabled.
-  bool input_tracing_enabled_;
-
-  THREAD_CHECKER(thread_checker_);
-  // This object can be set to start a trace if a hotkey (like F3) is pressed.
-  // While initialized, it means that a trace is on-going.
-  scoped_ptr<trace_event::ScopedTraceToFile> trace_to_file_;
-  // Record of a list of events we're interested in, ordered by starting time.
-  StartTimeToEventMap start_time_to_event_map_;
-};
-
-}  // namespace browser
-}  // namespace cobalt
-
-#endif  // COBALT_BROWSER_TRACE_MANAGER_H_
diff --git a/src/cobalt/browser/web_module.cc b/src/cobalt/browser/web_module.cc
index e1ba8b4..40bce3c 100644
--- a/src/cobalt/browser/web_module.cc
+++ b/src/cobalt/browser/web_module.cc
@@ -594,6 +594,7 @@
   media_source_registry_.reset(new dom::MediaSource::Registry);
 
   media_session_client_ = media_session::MediaSessionClient::Create();
+  media_session_client_->SetMediaPlayerFactory(data.web_media_player_factory);
 
   system_caption_settings_ = new cobalt::dom::captions::SystemCaptionSettings();
 
@@ -1076,6 +1077,7 @@
 void WebModule::Impl::SetWebMediaPlayerFactory(
     media::WebMediaPlayerFactory* web_media_player_factory) {
   window_->set_web_media_player_factory(web_media_player_factory);
+  media_session_client_->SetMediaPlayerFactory(web_media_player_factory);
 }
 
 void WebModule::Impl::SetApplicationState(base::ApplicationState state) {
diff --git a/src/cobalt/browser/web_module.h b/src/cobalt/browser/web_module.h
index 5e94dbb..7f8ad01 100644
--- a/src/cobalt/browser/web_module.h
+++ b/src/cobalt/browser/web_module.h
@@ -26,7 +26,6 @@
 #include "base/synchronization/waitable_event.h"
 #include "base/threading/thread.h"
 #include "base/threading/thread_checker.h"
-#include "cobalt/accessibility/tts_engine.h"
 #include "cobalt/base/address_sanitizer.h"
 #include "cobalt/base/source_location.h"
 #include "cobalt/browser/lifecycle_observer.h"
diff --git a/src/cobalt/build/all.gyp b/src/cobalt/build/all.gyp
index a53c52f..002d625 100644
--- a/src/cobalt/build/all.gyp
+++ b/src/cobalt/build/all.gyp
@@ -31,7 +31,6 @@
       'type': 'none',
       'dependencies': [
         '<(DEPTH)/base/base.gyp:base_unittests',
-        '<(DEPTH)/cobalt/accessibility/accessibility_test.gyp:*',
         '<(DEPTH)/cobalt/audio/audio.gyp:*',
         '<(DEPTH)/cobalt/audio/audio_test.gyp:*',
         '<(DEPTH)/cobalt/base/base.gyp:*',
@@ -98,6 +97,11 @@
             '<(DEPTH)/starboard/starboard_all.gyp:starboard_all',
           ],
         }],
+        ['target_arch in ["x86", "x64", "arm", "arm64"]', {
+          'dependencies': [
+            '<(DEPTH)/starboard/elf_loader/elf_loader.gyp:elf_loader',
+          ],
+        }],
       ],
     },
   ],
diff --git a/src/cobalt/build/build.id b/src/cobalt/build/build.id
index 80c1e89..45fb3e0 100644
--- a/src/cobalt/build/build.id
+++ b/src/cobalt/build/build.id
@@ -1 +1 @@
-217501
\ No newline at end of file
+220639
\ No newline at end of file
diff --git a/src/cobalt/build/cobalt_archive.py b/src/cobalt/build/cobalt_archive.py
index 9e50fec..e91dfe7 100644
--- a/src/cobalt/build/cobalt_archive.py
+++ b/src/cobalt/build/cobalt_archive.py
@@ -80,7 +80,9 @@
       include_black_box_tests=include_black_box_tests)
 
 
-def ExtractCobaltArchive(input_zip_path, output_directory_path, outstream=None):
+def ExtractCobaltArchive(input_zip_path,
+                         output_directory_path,
+                         outstream=None):
   """Returns True if the extract operation was successfull."""
   archive = CobaltArchive(archive_zip_path=input_zip_path)
   return archive.ExtractTo(output_dir=output_directory_path,
@@ -183,7 +185,7 @@
           perms = _GetFilePermissions(file_path)
           if (stat.S_IXUSR) & perms:
             executable_files.append(archive_path)
-        # TODO(niteris): Use and implement _FoldIdenticalFiles() to reduce
+        # TODO: Use and implement _FoldIdenticalFiles() to reduce
         # duplicate files. This will help platforms like nxswitch which include
         # a lot of duplicate files for the sdk.
         try:
@@ -295,7 +297,8 @@
   """Finds necessary files and makes an archive."""
   _MakeDirs(os.path.dirname(output_archive_path))
   out_directory = paths.BuildOutputDirectory(platform_name, config)
-  root_dir = os.path.abspath(os.path.join(out_directory, '..', '..'))
+  root_dir = os.path.abspath(
+      os.path.normpath(os.path.join(out_directory, '..', '..')))
   flist = filelist.FileList()
   inc_paths = _GetDeployPaths(platform_name, config)
   logging.info('Adding binary files to bundle...')
@@ -427,7 +430,7 @@
   if not config:
     config = raw_input('config: ')
   if not output_zip:
-    output_zip = raw_input('output_zip: ')
+    output_zip = os.path.normpath(raw_input('output_zip: '))
   if not output_zip.endswith('.zip'):
     output_zip += '.zip'
   start_time = time.time()
@@ -515,7 +518,7 @@
     _MakeCobaltPlatformArchive(
         platform=args.platform,
         config=args.config,
-        output_zip=args.out_path,
+        output_zip=os.path.normpath(args.out_path),
         include_black_box_tests=args.include_black_box_tests)
     sys.exit(0)
   elif args.extract:
diff --git a/src/cobalt/build/cobalt_archive_content/__cobalt_archive/finalize_decompression/decompress.py b/src/cobalt/build/cobalt_archive_content/__cobalt_archive/finalize_decompression/decompress.py
index 8224154..3f34428 100644
--- a/src/cobalt/build/cobalt_archive_content/__cobalt_archive/finalize_decompression/decompress.py
+++ b/src/cobalt/build/cobalt_archive_content/__cobalt_archive/finalize_decompression/decompress.py
@@ -65,33 +65,32 @@
     os.makedirs(path)
 
 
-def _ExtractSymlinks(cwd, symlink_dir_list):
+def _ExtractSymlinks(archive_root, symlink_dir_list):
   """Recreates symlinks on Windows and linux."""
-  prev_cwd = os.getcwd()
-  cwd = os.path.normpath(cwd)
+  archive_root = os.path.normpath(archive_root)
+  if _IS_WINDOWS:
+    archive_root = '\\\\?\\' + archive_root
+  for link_path, real_path in symlink_dir_list:
+    # link_path and real_path are assumed to be both relative paths.
+    real_path = os.path.normpath(real_path)
+    link_path = os.path.normpath(link_path)
+    target_path = os.path.relpath(real_path, os.path.dirname(link_path))
+    link_path = os.path.join(archive_root, link_path)
+    if not os.path.exists(os.path.dirname(link_path)):
+      _MakeDirs(os.path.dirname(link_path))
+    _CreateSymlink(target_path, link_path)
+  # Check that all the symlinks point to an existing directory.
   all_ok = True
-  try:
-    os.chdir(cwd)
-    for link_path, real_path in symlink_dir_list:
-      link_path = os.path.abspath(link_path)
-      real_path = os.path.abspath(real_path)
-      if not os.path.exists(real_path):
-        _MakeDirs(real_path)
-      if not os.path.exists(os.path.dirname(link_path)):
-        _MakeDirs(os.path.dirname(link_path))
-      assert os.path.exists(real_path)
-      real_path = os.path.relpath(real_path)
-      _CreateSymlink(real_path, link_path)
-      if not os.path.exists(real_path):
-        logging.critical('Error target folder %s does not exist.',
-                         os.path.abspath(real_path))
-        all_ok = False
-      if not os.path.exists(link_path):
-        logging.critical('Error link folder %s does not exist.',
-                         os.path.abspath(link_path))
-        all_ok = False
-  finally:
-    os.chdir(prev_cwd)
+  cwd = os.getcwd()
+  for link_path, _ in symlink_dir_list:
+    link_path = os.path.join(archive_root, link_path)
+    try:
+      # This will raise an error if the link points to an invalid directory.
+      os.chdir(link_path)
+    except:
+      all_ok = False
+    finally:
+      os.chdir(cwd)
   if not all_ok:
     logging.critical('\n*******************************************'
                      '\nErrors happended during symlink extraction.'
diff --git a/src/cobalt/build/cobalt_archive_content/__cobalt_archive/run/readme.md b/src/cobalt/build/cobalt_archive_content/__cobalt_archive/run/readme.md
index 44ba4c9..df9ef75 100644
--- a/src/cobalt/build/cobalt_archive_content/__cobalt_archive/run/readme.md
+++ b/src/cobalt/build/cobalt_archive_content/__cobalt_archive/run/readme.md
@@ -12,8 +12,6 @@
 therefore *stable* and any Cobalt archive can be run the same binaries/tests
 using the same shell command.
 
-Please see go/cobalt-archive-doc
-
 Example:
     python __cobalt_archive/run/run_cobalt.py --device_id IP
 
diff --git a/src/cobalt/build/cobalt_archive_test.py b/src/cobalt/build/cobalt_archive_test.py
index 086a897..fe232e5 100644
--- a/src/cobalt/build/cobalt_archive_test.py
+++ b/src/cobalt/build/cobalt_archive_test.py
@@ -79,6 +79,7 @@
     tf = filelist_test.TempFileSystem()
     tf.Clear()
     tf.Make()
+    flist.AddFile(tf.root_in_tmp, tf.test_txt)
     flist.AddSymLink(tf.root_in_tmp, tf.sym_dir)
     bundle_zip = os.path.join(tf.root_tmp, 'bundle.zip')
     car = cobalt_archive.CobaltArchive(bundle_zip)
diff --git a/src/cobalt/build/cobalt_configuration.gypi b/src/cobalt/build/cobalt_configuration.gypi
index 76ffb6b..9feeca1 100644
--- a/src/cobalt/build/cobalt_configuration.gypi
+++ b/src/cobalt/build/cobalt_configuration.gypi
@@ -534,6 +534,7 @@
       'COBALT_BUILD_TYPE_GOLD',
       'COBALT_FORCE_CSP',
       'COBALT_FORCE_HTTPS',
+      'OFFICIAL_BUILD',  # Chromium base relies on this.
       'TRACING_DISABLED',
     ],
   },
diff --git a/src/cobalt/build/cobalt_configuration.py b/src/cobalt/build/cobalt_configuration.py
index f377bff..eae97f9 100644
--- a/src/cobalt/build/cobalt_configuration.py
+++ b/src/cobalt/build/cobalt_configuration.py
@@ -120,7 +120,6 @@
 
   def GetTestTargets(self):
     return [
-        'accessibility_test',
         'audio_test',
         'base_test',
         'base_unittests',
diff --git a/src/cobalt/content/icu/icudata.lst b/src/cobalt/content/icu/icudata.lst
deleted file mode 100644
index ae20b1e..0000000
--- a/src/cobalt/content/icu/icudata.lst
+++ /dev/null
@@ -1,230 +0,0 @@
-brkitr/char.brk
-brkitr/en.res
-brkitr/en_US.res
-brkitr/fi.res
-brkitr/ja.res
-brkitr/line.brk
-brkitr/line_fi.brk
-brkitr/res_index.res
-brkitr/root.res
-brkitr/sent.brk
-brkitr/thaidict.ctd
-brkitr/title.brk
-brkitr/word.brk
-brkitr/word_ja.brk
-cnvalias.icu
-coll/da.res
-coll/de.res
-coll/en.res
-coll/en_GB.res
-coll/en_US.res
-coll/es.res
-coll/fi.res
-coll/fr.res
-coll/invuca.icu
-coll/it.res
-coll/ja.res
-coll/ko.res
-coll/nb.res
-coll/nl.res
-coll/pl.res
-coll/pt.res
-coll/pt_BR.res
-coll/pt_PT.res
-coll/res_index.res
-coll/root.res
-coll/ru.res
-coll/sv.res
-coll/ucadata.icu
-coll/zh.res
-coll/zh_Hans.res
-coll/zh_Hans_CN.res
-coll/zh_Hant.res
-coll/zh_Hant_TW.res
-confusables.cfu
-curr/da.res
-curr/de.res
-curr/en.res
-curr/es.res
-curr/fi.res
-curr/fr.res
-curr/it.res
-curr/ja.res
-curr/ko.res
-curr/nb.res
-curr/nl.res
-curr/no.res
-curr/pl.res
-curr/pool.res
-curr/pt.res
-curr/pt_PT.res
-curr/root.res
-curr/ru.res
-curr/sv.res
-curr/zh.res
-curr/zh_CN.res
-curr/zh_Hans.res
-curr/zh_Hans_CN.res
-curr/zh_Hant.res
-curr/zh_Hant_TW.res
-curr/zh_TW.res
-da.res
-de.res
-en.res
-en_GB.res
-en_US.res
-es.res
-fi.res
-fr.res
-gb18030.cnv
-ibm-1089_P100-1995.cnv
-ibm-1373_P100-2002.cnv
-ibm-1383_P110-1999.cnv
-ibm-33722_P12A_P12A-2004_U2.cnv
-ibm-5354_P100-1998.cnv
-ibm-878_P100-1996.cnv
-ibm-9005_X110-2007.cnv
-ibm-943_P15A-2003.cnv
-ibm-9447_P100-2002.cnv
-ibm-970_P110_P110-2006_U2.cnv
-icustd.res
-icuver.res
-it.res
-ja.res
-keyTypeData.res
-ko.res
-lang/da.res
-lang/de.res
-lang/en.res
-lang/es.res
-lang/fi.res
-lang/fr.res
-lang/it.res
-lang/ja.res
-lang/ko.res
-lang/nb.res
-lang/nl.res
-lang/no.res
-lang/pl.res
-lang/pool.res
-lang/pt.res
-lang/pt_PT.res
-lang/root.res
-lang/ru.res
-lang/sv.res
-lang/zh.res
-lang/zh_CN.res
-lang/zh_Hans.res
-lang/zh_Hans_CN.res
-lang/zh_Hant.res
-lang/zh_Hant_TW.res
-lang/zh_TW.res
-likelySubtags.res
-metaZones.res
-nb.res
-nfc.nrm
-nfkc.nrm
-nfkc_cf.nrm
-nl.res
-no.res
-numberingSystems.res
-pl.res
-plurals.res
-pnames.icu
-pool.res
-pt.res
-pt_BR.res
-pt_PT.res
-rbnf/da.res
-rbnf/de.res
-rbnf/en.res
-rbnf/es.res
-rbnf/fi.res
-rbnf/fr.res
-rbnf/it.res
-rbnf/ja.res
-rbnf/ko.res
-rbnf/nb.res
-rbnf/nl.res
-rbnf/pl.res
-rbnf/pt.res
-rbnf/pt_PT.res
-rbnf/res_index.res
-rbnf/root.res
-rbnf/ru.res
-rbnf/sv.res
-rbnf/zh.res
-rbnf/zh_Hant.res
-region/da.res
-region/de.res
-region/en.res
-region/es.res
-region/fi.res
-region/fr.res
-region/it.res
-region/ja.res
-region/ko.res
-region/nb.res
-region/nl.res
-region/no.res
-region/pl.res
-region/pool.res
-region/pt.res
-region/pt_PT.res
-region/root.res
-region/ru.res
-region/sv.res
-region/zh.res
-region/zh_CN.res
-region/zh_Hans.res
-region/zh_Hans_CN.res
-region/zh_Hant.res
-region/zh_Hant_TW.res
-region/zh_TW.res
-res_index.res
-rfc3491.spp
-root.res
-ru.res
-supplementalData.res
-sv.res
-timezoneTypes.res
-unames.icu
-uts46.nrm
-windows-874-2000.cnv
-windows-950-2000.cnv
-windowsZones.res
-zh.res
-zh_CN.res
-zh_Hans.res
-zh_Hans_CN.res
-zh_Hant.res
-zh_Hant_TW.res
-zh_TW.res
-zone/da.res
-zone/de.res
-zone/en.res
-zone/en_GB.res
-zone/es.res
-zone/fi.res
-zone/fr.res
-zone/it.res
-zone/ja.res
-zone/ko.res
-zone/nb.res
-zone/nl.res
-zone/no.res
-zone/pl.res
-zone/pool.res
-zone/pt.res
-zone/pt_PT.res
-zone/root.res
-zone/ru.res
-zone/sv.res
-zone/zh.res
-zone/zh_CN.res
-zone/zh_Hans.res
-zone/zh_Hans_CN.res
-zone/zh_Hant.res
-zone/zh_Hant_TW.res
-zone/zh_TW.res
-zoneinfo64.res
diff --git a/src/cobalt/content/icu/icudata_linux.lst b/src/cobalt/content/icu/icudata_linux.lst
deleted file mode 100644
index ae20b1e..0000000
--- a/src/cobalt/content/icu/icudata_linux.lst
+++ /dev/null
@@ -1,230 +0,0 @@
-brkitr/char.brk
-brkitr/en.res
-brkitr/en_US.res
-brkitr/fi.res
-brkitr/ja.res
-brkitr/line.brk
-brkitr/line_fi.brk
-brkitr/res_index.res
-brkitr/root.res
-brkitr/sent.brk
-brkitr/thaidict.ctd
-brkitr/title.brk
-brkitr/word.brk
-brkitr/word_ja.brk
-cnvalias.icu
-coll/da.res
-coll/de.res
-coll/en.res
-coll/en_GB.res
-coll/en_US.res
-coll/es.res
-coll/fi.res
-coll/fr.res
-coll/invuca.icu
-coll/it.res
-coll/ja.res
-coll/ko.res
-coll/nb.res
-coll/nl.res
-coll/pl.res
-coll/pt.res
-coll/pt_BR.res
-coll/pt_PT.res
-coll/res_index.res
-coll/root.res
-coll/ru.res
-coll/sv.res
-coll/ucadata.icu
-coll/zh.res
-coll/zh_Hans.res
-coll/zh_Hans_CN.res
-coll/zh_Hant.res
-coll/zh_Hant_TW.res
-confusables.cfu
-curr/da.res
-curr/de.res
-curr/en.res
-curr/es.res
-curr/fi.res
-curr/fr.res
-curr/it.res
-curr/ja.res
-curr/ko.res
-curr/nb.res
-curr/nl.res
-curr/no.res
-curr/pl.res
-curr/pool.res
-curr/pt.res
-curr/pt_PT.res
-curr/root.res
-curr/ru.res
-curr/sv.res
-curr/zh.res
-curr/zh_CN.res
-curr/zh_Hans.res
-curr/zh_Hans_CN.res
-curr/zh_Hant.res
-curr/zh_Hant_TW.res
-curr/zh_TW.res
-da.res
-de.res
-en.res
-en_GB.res
-en_US.res
-es.res
-fi.res
-fr.res
-gb18030.cnv
-ibm-1089_P100-1995.cnv
-ibm-1373_P100-2002.cnv
-ibm-1383_P110-1999.cnv
-ibm-33722_P12A_P12A-2004_U2.cnv
-ibm-5354_P100-1998.cnv
-ibm-878_P100-1996.cnv
-ibm-9005_X110-2007.cnv
-ibm-943_P15A-2003.cnv
-ibm-9447_P100-2002.cnv
-ibm-970_P110_P110-2006_U2.cnv
-icustd.res
-icuver.res
-it.res
-ja.res
-keyTypeData.res
-ko.res
-lang/da.res
-lang/de.res
-lang/en.res
-lang/es.res
-lang/fi.res
-lang/fr.res
-lang/it.res
-lang/ja.res
-lang/ko.res
-lang/nb.res
-lang/nl.res
-lang/no.res
-lang/pl.res
-lang/pool.res
-lang/pt.res
-lang/pt_PT.res
-lang/root.res
-lang/ru.res
-lang/sv.res
-lang/zh.res
-lang/zh_CN.res
-lang/zh_Hans.res
-lang/zh_Hans_CN.res
-lang/zh_Hant.res
-lang/zh_Hant_TW.res
-lang/zh_TW.res
-likelySubtags.res
-metaZones.res
-nb.res
-nfc.nrm
-nfkc.nrm
-nfkc_cf.nrm
-nl.res
-no.res
-numberingSystems.res
-pl.res
-plurals.res
-pnames.icu
-pool.res
-pt.res
-pt_BR.res
-pt_PT.res
-rbnf/da.res
-rbnf/de.res
-rbnf/en.res
-rbnf/es.res
-rbnf/fi.res
-rbnf/fr.res
-rbnf/it.res
-rbnf/ja.res
-rbnf/ko.res
-rbnf/nb.res
-rbnf/nl.res
-rbnf/pl.res
-rbnf/pt.res
-rbnf/pt_PT.res
-rbnf/res_index.res
-rbnf/root.res
-rbnf/ru.res
-rbnf/sv.res
-rbnf/zh.res
-rbnf/zh_Hant.res
-region/da.res
-region/de.res
-region/en.res
-region/es.res
-region/fi.res
-region/fr.res
-region/it.res
-region/ja.res
-region/ko.res
-region/nb.res
-region/nl.res
-region/no.res
-region/pl.res
-region/pool.res
-region/pt.res
-region/pt_PT.res
-region/root.res
-region/ru.res
-region/sv.res
-region/zh.res
-region/zh_CN.res
-region/zh_Hans.res
-region/zh_Hans_CN.res
-region/zh_Hant.res
-region/zh_Hant_TW.res
-region/zh_TW.res
-res_index.res
-rfc3491.spp
-root.res
-ru.res
-supplementalData.res
-sv.res
-timezoneTypes.res
-unames.icu
-uts46.nrm
-windows-874-2000.cnv
-windows-950-2000.cnv
-windowsZones.res
-zh.res
-zh_CN.res
-zh_Hans.res
-zh_Hans_CN.res
-zh_Hant.res
-zh_Hant_TW.res
-zh_TW.res
-zone/da.res
-zone/de.res
-zone/en.res
-zone/en_GB.res
-zone/es.res
-zone/fi.res
-zone/fr.res
-zone/it.res
-zone/ja.res
-zone/ko.res
-zone/nb.res
-zone/nl.res
-zone/no.res
-zone/pl.res
-zone/pool.res
-zone/pt.res
-zone/pt_PT.res
-zone/root.res
-zone/ru.res
-zone/sv.res
-zone/zh.res
-zone/zh_CN.res
-zone/zh_Hans.res
-zone/zh_Hans_CN.res
-zone/zh_Hant.res
-zone/zh_Hant_TW.res
-zone/zh_TW.res
-zoneinfo64.res
diff --git a/src/cobalt/content/icu/icudt56b/af.res b/src/cobalt/content/icu/icudt56b/af.res
index b1d9054..284d6c5 100644
--- a/src/cobalt/content/icu/icudt56b/af.res
+++ b/src/cobalt/content/icu/icudt56b/af.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/ak.res b/src/cobalt/content/icu/icudt56b/ak.res
index cceee96..27239e7 100644
--- a/src/cobalt/content/icu/icudt56b/ak.res
+++ b/src/cobalt/content/icu/icudt56b/ak.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/am.res b/src/cobalt/content/icu/icudt56b/am.res
index 0bd9037..81d2671 100644
--- a/src/cobalt/content/icu/icudt56b/am.res
+++ b/src/cobalt/content/icu/icudt56b/am.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/an.res b/src/cobalt/content/icu/icudt56b/an.res
index 3a6ec3e..f7fe9ba 100644
--- a/src/cobalt/content/icu/icudt56b/an.res
+++ b/src/cobalt/content/icu/icudt56b/an.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/ar.res b/src/cobalt/content/icu/icudt56b/ar.res
index adf9eae..99cbf2a 100644
--- a/src/cobalt/content/icu/icudt56b/ar.res
+++ b/src/cobalt/content/icu/icudt56b/ar.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/ast.res b/src/cobalt/content/icu/icudt56b/ast.res
index 49ffb94..62b23e3 100644
--- a/src/cobalt/content/icu/icudt56b/ast.res
+++ b/src/cobalt/content/icu/icudt56b/ast.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/az.res b/src/cobalt/content/icu/icudt56b/az.res
index 1154cd7..900086d 100644
--- a/src/cobalt/content/icu/icudt56b/az.res
+++ b/src/cobalt/content/icu/icudt56b/az.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/be.res b/src/cobalt/content/icu/icudt56b/be.res
index b1d5c70..9717219 100644
--- a/src/cobalt/content/icu/icudt56b/be.res
+++ b/src/cobalt/content/icu/icudt56b/be.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/bem.res b/src/cobalt/content/icu/icudt56b/bem.res
index bf4be4b..34efeb9 100644
--- a/src/cobalt/content/icu/icudt56b/bem.res
+++ b/src/cobalt/content/icu/icudt56b/bem.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/bg.res b/src/cobalt/content/icu/icudt56b/bg.res
index 9278fe9..f15f52e 100644
--- a/src/cobalt/content/icu/icudt56b/bg.res
+++ b/src/cobalt/content/icu/icudt56b/bg.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/bn.res b/src/cobalt/content/icu/icudt56b/bn.res
index 76a84b8..d002c6d 100644
--- a/src/cobalt/content/icu/icudt56b/bn.res
+++ b/src/cobalt/content/icu/icudt56b/bn.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/br.res b/src/cobalt/content/icu/icudt56b/br.res
index 49cf07d..9fd2d85 100644
--- a/src/cobalt/content/icu/icudt56b/br.res
+++ b/src/cobalt/content/icu/icudt56b/br.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/bs.res b/src/cobalt/content/icu/icudt56b/bs.res
index 6244431..beca030 100644
--- a/src/cobalt/content/icu/icudt56b/bs.res
+++ b/src/cobalt/content/icu/icudt56b/bs.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/ca.res b/src/cobalt/content/icu/icudt56b/ca.res
index 77bf740..cd9c556 100644
--- a/src/cobalt/content/icu/icudt56b/ca.res
+++ b/src/cobalt/content/icu/icudt56b/ca.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/ckb.res b/src/cobalt/content/icu/icudt56b/ckb.res
index 7faa641..309e301 100644
--- a/src/cobalt/content/icu/icudt56b/ckb.res
+++ b/src/cobalt/content/icu/icudt56b/ckb.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/coll/ar.res b/src/cobalt/content/icu/icudt56b/coll/ar.res
index 8bd55fd..2535ac9 100644
--- a/src/cobalt/content/icu/icudt56b/coll/ar.res
+++ b/src/cobalt/content/icu/icudt56b/coll/ar.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/coll/bg.res b/src/cobalt/content/icu/icudt56b/coll/bg.res
index 869c575..c317e0a 100644
--- a/src/cobalt/content/icu/icudt56b/coll/bg.res
+++ b/src/cobalt/content/icu/icudt56b/coll/bg.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/coll/bn.res b/src/cobalt/content/icu/icudt56b/coll/bn.res
index b4d18d5..17f10ff 100644
--- a/src/cobalt/content/icu/icudt56b/coll/bn.res
+++ b/src/cobalt/content/icu/icudt56b/coll/bn.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/coll/ca.res b/src/cobalt/content/icu/icudt56b/coll/ca.res
index 55c6cf7..21c7b5c 100644
--- a/src/cobalt/content/icu/icudt56b/coll/ca.res
+++ b/src/cobalt/content/icu/icudt56b/coll/ca.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/coll/cs.res b/src/cobalt/content/icu/icudt56b/coll/cs.res
index 96090e9..30dd56e 100644
--- a/src/cobalt/content/icu/icudt56b/coll/cs.res
+++ b/src/cobalt/content/icu/icudt56b/coll/cs.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/coll/da.res b/src/cobalt/content/icu/icudt56b/coll/da.res
index 6d6a1e6..30dd56e 100644
--- a/src/cobalt/content/icu/icudt56b/coll/da.res
+++ b/src/cobalt/content/icu/icudt56b/coll/da.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/coll/de.res b/src/cobalt/content/icu/icudt56b/coll/de.res
index 6cbffd1..0af8d4a 100644
--- a/src/cobalt/content/icu/icudt56b/coll/de.res
+++ b/src/cobalt/content/icu/icudt56b/coll/de.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/coll/de_AT.res b/src/cobalt/content/icu/icudt56b/coll/de_AT.res
index e157e2d..032fc75 100644
--- a/src/cobalt/content/icu/icudt56b/coll/de_AT.res
+++ b/src/cobalt/content/icu/icudt56b/coll/de_AT.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/coll/el.res b/src/cobalt/content/icu/icudt56b/coll/el.res
index a6d79ba..c317e0a 100644
--- a/src/cobalt/content/icu/icudt56b/coll/el.res
+++ b/src/cobalt/content/icu/icudt56b/coll/el.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/coll/es.res b/src/cobalt/content/icu/icudt56b/coll/es.res
index 3e4f4cd..41f43af 100644
--- a/src/cobalt/content/icu/icudt56b/coll/es.res
+++ b/src/cobalt/content/icu/icudt56b/coll/es.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/coll/et.res b/src/cobalt/content/icu/icudt56b/coll/et.res
index 5b86126..c317e0a 100644
--- a/src/cobalt/content/icu/icudt56b/coll/et.res
+++ b/src/cobalt/content/icu/icudt56b/coll/et.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/coll/fa.res b/src/cobalt/content/icu/icudt56b/coll/fa.res
index 7deab50..c317e0a 100644
--- a/src/cobalt/content/icu/icudt56b/coll/fa.res
+++ b/src/cobalt/content/icu/icudt56b/coll/fa.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/coll/fi.res b/src/cobalt/content/icu/icudt56b/coll/fi.res
index 49a7a34..41f43af 100644
--- a/src/cobalt/content/icu/icudt56b/coll/fi.res
+++ b/src/cobalt/content/icu/icudt56b/coll/fi.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/coll/fil.res b/src/cobalt/content/icu/icudt56b/coll/fil.res
index e1f7ec5..c317e0a 100644
--- a/src/cobalt/content/icu/icudt56b/coll/fil.res
+++ b/src/cobalt/content/icu/icudt56b/coll/fil.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/coll/fr_CA.res b/src/cobalt/content/icu/icudt56b/coll/fr_CA.res
index 82e6d81..c317e0a 100644
--- a/src/cobalt/content/icu/icudt56b/coll/fr_CA.res
+++ b/src/cobalt/content/icu/icudt56b/coll/fr_CA.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/coll/gu.res b/src/cobalt/content/icu/icudt56b/coll/gu.res
index 49bb592..c317e0a 100644
--- a/src/cobalt/content/icu/icudt56b/coll/gu.res
+++ b/src/cobalt/content/icu/icudt56b/coll/gu.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/coll/he.res b/src/cobalt/content/icu/icudt56b/coll/he.res
index c74874f..30dd56e 100644
--- a/src/cobalt/content/icu/icudt56b/coll/he.res
+++ b/src/cobalt/content/icu/icudt56b/coll/he.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/coll/hi.res b/src/cobalt/content/icu/icudt56b/coll/hi.res
index 67f3464..c317e0a 100644
--- a/src/cobalt/content/icu/icudt56b/coll/hi.res
+++ b/src/cobalt/content/icu/icudt56b/coll/hi.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/coll/hr.res b/src/cobalt/content/icu/icudt56b/coll/hr.res
index 157fc6e..30dd56e 100644
--- a/src/cobalt/content/icu/icudt56b/coll/hr.res
+++ b/src/cobalt/content/icu/icudt56b/coll/hr.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/coll/hu.res b/src/cobalt/content/icu/icudt56b/coll/hu.res
index 6f1d185..c317e0a 100644
--- a/src/cobalt/content/icu/icudt56b/coll/hu.res
+++ b/src/cobalt/content/icu/icudt56b/coll/hu.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/coll/ja.res b/src/cobalt/content/icu/icudt56b/coll/ja.res
index f713c01..07694e1 100644
--- a/src/cobalt/content/icu/icudt56b/coll/ja.res
+++ b/src/cobalt/content/icu/icudt56b/coll/ja.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/coll/kn.res b/src/cobalt/content/icu/icudt56b/coll/kn.res
index 998784d..17f10ff 100644
--- a/src/cobalt/content/icu/icudt56b/coll/kn.res
+++ b/src/cobalt/content/icu/icudt56b/coll/kn.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/coll/ko.res b/src/cobalt/content/icu/icudt56b/coll/ko.res
index c3bbcb6..4d0bb22 100644
--- a/src/cobalt/content/icu/icudt56b/coll/ko.res
+++ b/src/cobalt/content/icu/icudt56b/coll/ko.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/coll/lt.res b/src/cobalt/content/icu/icudt56b/coll/lt.res
index ac6e4f8..c317e0a 100644
--- a/src/cobalt/content/icu/icudt56b/coll/lt.res
+++ b/src/cobalt/content/icu/icudt56b/coll/lt.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/coll/lv.res b/src/cobalt/content/icu/icudt56b/coll/lv.res
index 5827c9a..c317e0a 100644
--- a/src/cobalt/content/icu/icudt56b/coll/lv.res
+++ b/src/cobalt/content/icu/icudt56b/coll/lv.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/coll/ml.res b/src/cobalt/content/icu/icudt56b/coll/ml.res
index 98a0b6b..c317e0a 100644
--- a/src/cobalt/content/icu/icudt56b/coll/ml.res
+++ b/src/cobalt/content/icu/icudt56b/coll/ml.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/coll/mr.res b/src/cobalt/content/icu/icudt56b/coll/mr.res
index 3538c54..c317e0a 100644
--- a/src/cobalt/content/icu/icudt56b/coll/mr.res
+++ b/src/cobalt/content/icu/icudt56b/coll/mr.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/coll/nb.res b/src/cobalt/content/icu/icudt56b/coll/nb.res
index f567163..30dd56e 100644
--- a/src/cobalt/content/icu/icudt56b/coll/nb.res
+++ b/src/cobalt/content/icu/icudt56b/coll/nb.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/coll/nn.res b/src/cobalt/content/icu/icudt56b/coll/nn.res
index f567163..30dd56e 100644
--- a/src/cobalt/content/icu/icudt56b/coll/nn.res
+++ b/src/cobalt/content/icu/icudt56b/coll/nn.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/coll/pl.res b/src/cobalt/content/icu/icudt56b/coll/pl.res
index fabe651..c317e0a 100644
--- a/src/cobalt/content/icu/icudt56b/coll/pl.res
+++ b/src/cobalt/content/icu/icudt56b/coll/pl.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/coll/ro.res b/src/cobalt/content/icu/icudt56b/coll/ro.res
index 1e28918..c317e0a 100644
--- a/src/cobalt/content/icu/icudt56b/coll/ro.res
+++ b/src/cobalt/content/icu/icudt56b/coll/ro.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/coll/root.res b/src/cobalt/content/icu/icudt56b/coll/root.res
index b3749b7..47912c6 100644
--- a/src/cobalt/content/icu/icudt56b/coll/root.res
+++ b/src/cobalt/content/icu/icudt56b/coll/root.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/coll/ru.res b/src/cobalt/content/icu/icudt56b/coll/ru.res
index 869c575..c317e0a 100644
--- a/src/cobalt/content/icu/icudt56b/coll/ru.res
+++ b/src/cobalt/content/icu/icudt56b/coll/ru.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/coll/sk.res b/src/cobalt/content/icu/icudt56b/coll/sk.res
index 05a3caa..30dd56e 100644
--- a/src/cobalt/content/icu/icudt56b/coll/sk.res
+++ b/src/cobalt/content/icu/icudt56b/coll/sk.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/coll/sl.res b/src/cobalt/content/icu/icudt56b/coll/sl.res
index 52c6055..c317e0a 100644
--- a/src/cobalt/content/icu/icudt56b/coll/sl.res
+++ b/src/cobalt/content/icu/icudt56b/coll/sl.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/coll/sr.res b/src/cobalt/content/icu/icudt56b/coll/sr.res
index 36536db..c317e0a 100644
--- a/src/cobalt/content/icu/icudt56b/coll/sr.res
+++ b/src/cobalt/content/icu/icudt56b/coll/sr.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/coll/sr_Latn.res b/src/cobalt/content/icu/icudt56b/coll/sr_Latn.res
index 157fc6e..30dd56e 100644
--- a/src/cobalt/content/icu/icudt56b/coll/sr_Latn.res
+++ b/src/cobalt/content/icu/icudt56b/coll/sr_Latn.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/coll/sv.res b/src/cobalt/content/icu/icudt56b/coll/sv.res
index 92d6887..90c4801 100644
--- a/src/cobalt/content/icu/icudt56b/coll/sv.res
+++ b/src/cobalt/content/icu/icudt56b/coll/sv.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/coll/ta.res b/src/cobalt/content/icu/icudt56b/coll/ta.res
index c7c7bc5..c317e0a 100644
--- a/src/cobalt/content/icu/icudt56b/coll/ta.res
+++ b/src/cobalt/content/icu/icudt56b/coll/ta.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/coll/te.res b/src/cobalt/content/icu/icudt56b/coll/te.res
index c046b2a..c317e0a 100644
--- a/src/cobalt/content/icu/icudt56b/coll/te.res
+++ b/src/cobalt/content/icu/icudt56b/coll/te.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/coll/th.res b/src/cobalt/content/icu/icudt56b/coll/th.res
index 454ddb0..c317e0a 100644
--- a/src/cobalt/content/icu/icudt56b/coll/th.res
+++ b/src/cobalt/content/icu/icudt56b/coll/th.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/coll/tr.res b/src/cobalt/content/icu/icudt56b/coll/tr.res
index f38e549..30dd56e 100644
--- a/src/cobalt/content/icu/icudt56b/coll/tr.res
+++ b/src/cobalt/content/icu/icudt56b/coll/tr.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/coll/uk.res b/src/cobalt/content/icu/icudt56b/coll/uk.res
index 6503052..c317e0a 100644
--- a/src/cobalt/content/icu/icudt56b/coll/uk.res
+++ b/src/cobalt/content/icu/icudt56b/coll/uk.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/coll/vi.res b/src/cobalt/content/icu/icudt56b/coll/vi.res
index 6a66847..17f10ff 100644
--- a/src/cobalt/content/icu/icudt56b/coll/vi.res
+++ b/src/cobalt/content/icu/icudt56b/coll/vi.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/coll/zh.res b/src/cobalt/content/icu/icudt56b/coll/zh.res
index ebdecdf..ac8e0eb 100644
--- a/src/cobalt/content/icu/icudt56b/coll/zh.res
+++ b/src/cobalt/content/icu/icudt56b/coll/zh.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/cs.res b/src/cobalt/content/icu/icudt56b/cs.res
index 4a98bce..5d830fd 100644
--- a/src/cobalt/content/icu/icudt56b/cs.res
+++ b/src/cobalt/content/icu/icudt56b/cs.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/curr/am.res b/src/cobalt/content/icu/icudt56b/curr/am.res
index 38e80e7..d03272b 100644
--- a/src/cobalt/content/icu/icudt56b/curr/am.res
+++ b/src/cobalt/content/icu/icudt56b/curr/am.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/curr/ar.res b/src/cobalt/content/icu/icudt56b/curr/ar.res
index fb21df4..98164d9 100644
--- a/src/cobalt/content/icu/icudt56b/curr/ar.res
+++ b/src/cobalt/content/icu/icudt56b/curr/ar.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/curr/bg.res b/src/cobalt/content/icu/icudt56b/curr/bg.res
index 1b9fde0..4342e4b 100644
--- a/src/cobalt/content/icu/icudt56b/curr/bg.res
+++ b/src/cobalt/content/icu/icudt56b/curr/bg.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/curr/ca.res b/src/cobalt/content/icu/icudt56b/curr/ca.res
index 51c117a..0586b88 100644
--- a/src/cobalt/content/icu/icudt56b/curr/ca.res
+++ b/src/cobalt/content/icu/icudt56b/curr/ca.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/curr/cs.res b/src/cobalt/content/icu/icudt56b/curr/cs.res
index fb87c8b..8c7b25b 100644
--- a/src/cobalt/content/icu/icudt56b/curr/cs.res
+++ b/src/cobalt/content/icu/icudt56b/curr/cs.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/curr/da.res b/src/cobalt/content/icu/icudt56b/curr/da.res
index 4150d3e..5e1633e 100644
--- a/src/cobalt/content/icu/icudt56b/curr/da.res
+++ b/src/cobalt/content/icu/icudt56b/curr/da.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/curr/de.res b/src/cobalt/content/icu/icudt56b/curr/de.res
index 18ab163..ea5ac0d 100644
--- a/src/cobalt/content/icu/icudt56b/curr/de.res
+++ b/src/cobalt/content/icu/icudt56b/curr/de.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/curr/de_CH.res b/src/cobalt/content/icu/icudt56b/curr/de_CH.res
index f3ae405..3b58f47 100644
--- a/src/cobalt/content/icu/icudt56b/curr/de_CH.res
+++ b/src/cobalt/content/icu/icudt56b/curr/de_CH.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/curr/el.res b/src/cobalt/content/icu/icudt56b/curr/el.res
index 97e80e0..65496d2 100644
--- a/src/cobalt/content/icu/icudt56b/curr/el.res
+++ b/src/cobalt/content/icu/icudt56b/curr/el.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/curr/en.res b/src/cobalt/content/icu/icudt56b/curr/en.res
index d7ed88f..f56ebfd 100644
--- a/src/cobalt/content/icu/icudt56b/curr/en.res
+++ b/src/cobalt/content/icu/icudt56b/curr/en.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/curr/en_001.res b/src/cobalt/content/icu/icudt56b/curr/en_001.res
index 291eb3c..eff5ebd 100644
--- a/src/cobalt/content/icu/icudt56b/curr/en_001.res
+++ b/src/cobalt/content/icu/icudt56b/curr/en_001.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/curr/en_150.res b/src/cobalt/content/icu/icudt56b/curr/en_150.res
index cec5a7c..aca0bbd 100644
--- a/src/cobalt/content/icu/icudt56b/curr/en_150.res
+++ b/src/cobalt/content/icu/icudt56b/curr/en_150.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/curr/en_AU.res b/src/cobalt/content/icu/icudt56b/curr/en_AU.res
index b3caf09..e641c63 100644
--- a/src/cobalt/content/icu/icudt56b/curr/en_AU.res
+++ b/src/cobalt/content/icu/icudt56b/curr/en_AU.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/curr/en_CA.res b/src/cobalt/content/icu/icudt56b/curr/en_CA.res
index f4cd95b..d9f5a75 100644
--- a/src/cobalt/content/icu/icudt56b/curr/en_CA.res
+++ b/src/cobalt/content/icu/icudt56b/curr/en_CA.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/curr/en_GB.res b/src/cobalt/content/icu/icudt56b/curr/en_GB.res
index 9f0e72a..8ba46c9 100644
--- a/src/cobalt/content/icu/icudt56b/curr/en_GB.res
+++ b/src/cobalt/content/icu/icudt56b/curr/en_GB.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/curr/en_IN.res b/src/cobalt/content/icu/icudt56b/curr/en_IN.res
index a6ed044..29c193d 100644
--- a/src/cobalt/content/icu/icudt56b/curr/en_IN.res
+++ b/src/cobalt/content/icu/icudt56b/curr/en_IN.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/curr/en_NZ.res b/src/cobalt/content/icu/icudt56b/curr/en_NZ.res
index ba6d617..86fa398 100644
--- a/src/cobalt/content/icu/icudt56b/curr/en_NZ.res
+++ b/src/cobalt/content/icu/icudt56b/curr/en_NZ.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/curr/en_ZA.res b/src/cobalt/content/icu/icudt56b/curr/en_ZA.res
index c182fea..1180613 100644
--- a/src/cobalt/content/icu/icudt56b/curr/en_ZA.res
+++ b/src/cobalt/content/icu/icudt56b/curr/en_ZA.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/curr/es.res b/src/cobalt/content/icu/icudt56b/curr/es.res
index 7a95655..381198a 100644
--- a/src/cobalt/content/icu/icudt56b/curr/es.res
+++ b/src/cobalt/content/icu/icudt56b/curr/es.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/curr/es_419.res b/src/cobalt/content/icu/icudt56b/curr/es_419.res
index 7f4d660..9dc0fab 100644
--- a/src/cobalt/content/icu/icudt56b/curr/es_419.res
+++ b/src/cobalt/content/icu/icudt56b/curr/es_419.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/curr/es_AR.res b/src/cobalt/content/icu/icudt56b/curr/es_AR.res
index debc621..16f648e 100644
--- a/src/cobalt/content/icu/icudt56b/curr/es_AR.res
+++ b/src/cobalt/content/icu/icudt56b/curr/es_AR.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/curr/es_MX.res b/src/cobalt/content/icu/icudt56b/curr/es_MX.res
index 5be672f..51f4c08 100644
--- a/src/cobalt/content/icu/icudt56b/curr/es_MX.res
+++ b/src/cobalt/content/icu/icudt56b/curr/es_MX.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/curr/es_US.res b/src/cobalt/content/icu/icudt56b/curr/es_US.res
index ac708dc..3968033 100644
--- a/src/cobalt/content/icu/icudt56b/curr/es_US.res
+++ b/src/cobalt/content/icu/icudt56b/curr/es_US.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/curr/fa.res b/src/cobalt/content/icu/icudt56b/curr/fa.res
index 776ac57..af94bfe 100644
--- a/src/cobalt/content/icu/icudt56b/curr/fa.res
+++ b/src/cobalt/content/icu/icudt56b/curr/fa.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/curr/fi.res b/src/cobalt/content/icu/icudt56b/curr/fi.res
index 0a4deea..3b8a6bf 100644
--- a/src/cobalt/content/icu/icudt56b/curr/fi.res
+++ b/src/cobalt/content/icu/icudt56b/curr/fi.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/curr/fil.res b/src/cobalt/content/icu/icudt56b/curr/fil.res
index 5b7dfb5..51309f4 100644
--- a/src/cobalt/content/icu/icudt56b/curr/fil.res
+++ b/src/cobalt/content/icu/icudt56b/curr/fil.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/curr/fr.res b/src/cobalt/content/icu/icudt56b/curr/fr.res
index 0db2683..97ef8fa 100644
--- a/src/cobalt/content/icu/icudt56b/curr/fr.res
+++ b/src/cobalt/content/icu/icudt56b/curr/fr.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/curr/fr_CA.res b/src/cobalt/content/icu/icudt56b/curr/fr_CA.res
index 44e1b23..42c1269 100644
--- a/src/cobalt/content/icu/icudt56b/curr/fr_CA.res
+++ b/src/cobalt/content/icu/icudt56b/curr/fr_CA.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/curr/he.res b/src/cobalt/content/icu/icudt56b/curr/he.res
index f0539b4..9f4899e 100644
--- a/src/cobalt/content/icu/icudt56b/curr/he.res
+++ b/src/cobalt/content/icu/icudt56b/curr/he.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/curr/hi.res b/src/cobalt/content/icu/icudt56b/curr/hi.res
index 5522f67..6daffbb 100644
--- a/src/cobalt/content/icu/icudt56b/curr/hi.res
+++ b/src/cobalt/content/icu/icudt56b/curr/hi.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/curr/hr.res b/src/cobalt/content/icu/icudt56b/curr/hr.res
index dbbf434..bd52f65 100644
--- a/src/cobalt/content/icu/icudt56b/curr/hr.res
+++ b/src/cobalt/content/icu/icudt56b/curr/hr.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/curr/hu.res b/src/cobalt/content/icu/icudt56b/curr/hu.res
index 8e4dc16..ebc0000 100644
--- a/src/cobalt/content/icu/icudt56b/curr/hu.res
+++ b/src/cobalt/content/icu/icudt56b/curr/hu.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/curr/id.res b/src/cobalt/content/icu/icudt56b/curr/id.res
index 4e32144..7955ab5 100644
--- a/src/cobalt/content/icu/icudt56b/curr/id.res
+++ b/src/cobalt/content/icu/icudt56b/curr/id.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/curr/in.res b/src/cobalt/content/icu/icudt56b/curr/in.res
index 50826b6..12a327a 100644
--- a/src/cobalt/content/icu/icudt56b/curr/in.res
+++ b/src/cobalt/content/icu/icudt56b/curr/in.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/curr/it.res b/src/cobalt/content/icu/icudt56b/curr/it.res
index 8e8c66b..f5fd979 100644
--- a/src/cobalt/content/icu/icudt56b/curr/it.res
+++ b/src/cobalt/content/icu/icudt56b/curr/it.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/curr/iw.res b/src/cobalt/content/icu/icudt56b/curr/iw.res
index bd7ea47..e1db668 100644
--- a/src/cobalt/content/icu/icudt56b/curr/iw.res
+++ b/src/cobalt/content/icu/icudt56b/curr/iw.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/curr/ja.res b/src/cobalt/content/icu/icudt56b/curr/ja.res
index f0c7c85..aaf9db9 100644
--- a/src/cobalt/content/icu/icudt56b/curr/ja.res
+++ b/src/cobalt/content/icu/icudt56b/curr/ja.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/curr/ko.res b/src/cobalt/content/icu/icudt56b/curr/ko.res
index e67daf0..80bec29 100644
--- a/src/cobalt/content/icu/icudt56b/curr/ko.res
+++ b/src/cobalt/content/icu/icudt56b/curr/ko.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/curr/lt.res b/src/cobalt/content/icu/icudt56b/curr/lt.res
index 53354e7..3f89f8e 100644
--- a/src/cobalt/content/icu/icudt56b/curr/lt.res
+++ b/src/cobalt/content/icu/icudt56b/curr/lt.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/curr/lv.res b/src/cobalt/content/icu/icudt56b/curr/lv.res
index 7dee64c..f1119e4 100644
--- a/src/cobalt/content/icu/icudt56b/curr/lv.res
+++ b/src/cobalt/content/icu/icudt56b/curr/lv.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/curr/nb.res b/src/cobalt/content/icu/icudt56b/curr/nb.res
index 04ac59c..8ac97dc 100644
--- a/src/cobalt/content/icu/icudt56b/curr/nb.res
+++ b/src/cobalt/content/icu/icudt56b/curr/nb.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/curr/nl.res b/src/cobalt/content/icu/icudt56b/curr/nl.res
index ea0bd1d..9d5d453 100644
--- a/src/cobalt/content/icu/icudt56b/curr/nl.res
+++ b/src/cobalt/content/icu/icudt56b/curr/nl.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/curr/no.res b/src/cobalt/content/icu/icudt56b/curr/no.res
index 3d7fe4c..6772320 100644
--- a/src/cobalt/content/icu/icudt56b/curr/no.res
+++ b/src/cobalt/content/icu/icudt56b/curr/no.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/curr/pl.res b/src/cobalt/content/icu/icudt56b/curr/pl.res
index 220049f..2c6ea20 100644
--- a/src/cobalt/content/icu/icudt56b/curr/pl.res
+++ b/src/cobalt/content/icu/icudt56b/curr/pl.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/curr/pool.res b/src/cobalt/content/icu/icudt56b/curr/pool.res
index 7d84f6c..7a0f86d 100644
--- a/src/cobalt/content/icu/icudt56b/curr/pool.res
+++ b/src/cobalt/content/icu/icudt56b/curr/pool.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/curr/pt.res b/src/cobalt/content/icu/icudt56b/curr/pt.res
index d4a9a4d..14659a9 100644
--- a/src/cobalt/content/icu/icudt56b/curr/pt.res
+++ b/src/cobalt/content/icu/icudt56b/curr/pt.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/curr/pt_PT.res b/src/cobalt/content/icu/icudt56b/curr/pt_PT.res
index 70ff325..d469d8f 100644
--- a/src/cobalt/content/icu/icudt56b/curr/pt_PT.res
+++ b/src/cobalt/content/icu/icudt56b/curr/pt_PT.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/curr/ro.res b/src/cobalt/content/icu/icudt56b/curr/ro.res
index 3916026..d3a5d1e 100644
--- a/src/cobalt/content/icu/icudt56b/curr/ro.res
+++ b/src/cobalt/content/icu/icudt56b/curr/ro.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/curr/root.res b/src/cobalt/content/icu/icudt56b/curr/root.res
index 1c39d46..1161352 100644
--- a/src/cobalt/content/icu/icudt56b/curr/root.res
+++ b/src/cobalt/content/icu/icudt56b/curr/root.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/curr/ru.res b/src/cobalt/content/icu/icudt56b/curr/ru.res
index 0eb467b..80681bb 100644
--- a/src/cobalt/content/icu/icudt56b/curr/ru.res
+++ b/src/cobalt/content/icu/icudt56b/curr/ru.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/curr/sk.res b/src/cobalt/content/icu/icudt56b/curr/sk.res
index e09c767..7b3ff60 100644
--- a/src/cobalt/content/icu/icudt56b/curr/sk.res
+++ b/src/cobalt/content/icu/icudt56b/curr/sk.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/curr/sl.res b/src/cobalt/content/icu/icudt56b/curr/sl.res
index fadcb69..62dac74 100644
--- a/src/cobalt/content/icu/icudt56b/curr/sl.res
+++ b/src/cobalt/content/icu/icudt56b/curr/sl.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/curr/sr.res b/src/cobalt/content/icu/icudt56b/curr/sr.res
index 3d7500e..bd0f5f9 100644
--- a/src/cobalt/content/icu/icudt56b/curr/sr.res
+++ b/src/cobalt/content/icu/icudt56b/curr/sr.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/curr/supplementalData.res b/src/cobalt/content/icu/icudt56b/curr/supplementalData.res
index 6f8b6fb..40ea0ed 100644
--- a/src/cobalt/content/icu/icudt56b/curr/supplementalData.res
+++ b/src/cobalt/content/icu/icudt56b/curr/supplementalData.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/curr/sv.res b/src/cobalt/content/icu/icudt56b/curr/sv.res
index 7f80b65..a408a3d 100644
--- a/src/cobalt/content/icu/icudt56b/curr/sv.res
+++ b/src/cobalt/content/icu/icudt56b/curr/sv.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/curr/sw.res b/src/cobalt/content/icu/icudt56b/curr/sw.res
index 6a8395e..54865e7 100644
--- a/src/cobalt/content/icu/icudt56b/curr/sw.res
+++ b/src/cobalt/content/icu/icudt56b/curr/sw.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/curr/th.res b/src/cobalt/content/icu/icudt56b/curr/th.res
index af7f775..53ada41 100644
--- a/src/cobalt/content/icu/icudt56b/curr/th.res
+++ b/src/cobalt/content/icu/icudt56b/curr/th.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/curr/tl.res b/src/cobalt/content/icu/icudt56b/curr/tl.res
index 4c27952..d6dc867 100644
--- a/src/cobalt/content/icu/icudt56b/curr/tl.res
+++ b/src/cobalt/content/icu/icudt56b/curr/tl.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/curr/tr.res b/src/cobalt/content/icu/icudt56b/curr/tr.res
index 486b255..4a5350f 100644
--- a/src/cobalt/content/icu/icudt56b/curr/tr.res
+++ b/src/cobalt/content/icu/icudt56b/curr/tr.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/curr/uk.res b/src/cobalt/content/icu/icudt56b/curr/uk.res
index 7ff314f..d5614a7 100644
--- a/src/cobalt/content/icu/icudt56b/curr/uk.res
+++ b/src/cobalt/content/icu/icudt56b/curr/uk.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/curr/vi.res b/src/cobalt/content/icu/icudt56b/curr/vi.res
index f0bd3b4..05268ae 100644
--- a/src/cobalt/content/icu/icudt56b/curr/vi.res
+++ b/src/cobalt/content/icu/icudt56b/curr/vi.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/curr/zh.res b/src/cobalt/content/icu/icudt56b/curr/zh.res
index a5e638b..2408d07 100644
--- a/src/cobalt/content/icu/icudt56b/curr/zh.res
+++ b/src/cobalt/content/icu/icudt56b/curr/zh.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/curr/zh_CN.res b/src/cobalt/content/icu/icudt56b/curr/zh_CN.res
index 2509851..27d3f68 100644
--- a/src/cobalt/content/icu/icudt56b/curr/zh_CN.res
+++ b/src/cobalt/content/icu/icudt56b/curr/zh_CN.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/curr/zh_HK.res b/src/cobalt/content/icu/icudt56b/curr/zh_HK.res
index f28f2ae..a73cf4b 100644
--- a/src/cobalt/content/icu/icudt56b/curr/zh_HK.res
+++ b/src/cobalt/content/icu/icudt56b/curr/zh_HK.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/curr/zh_Hans.res b/src/cobalt/content/icu/icudt56b/curr/zh_Hans.res
index 4a3ea50..8e70ff1 100644
--- a/src/cobalt/content/icu/icudt56b/curr/zh_Hans.res
+++ b/src/cobalt/content/icu/icudt56b/curr/zh_Hans.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/curr/zh_Hans_CN.res b/src/cobalt/content/icu/icudt56b/curr/zh_Hans_CN.res
index 2e50d66..f4a45c8 100644
--- a/src/cobalt/content/icu/icudt56b/curr/zh_Hans_CN.res
+++ b/src/cobalt/content/icu/icudt56b/curr/zh_Hans_CN.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/curr/zh_Hans_SG.res b/src/cobalt/content/icu/icudt56b/curr/zh_Hans_SG.res
index 557c60c..6d3a2fc 100644
--- a/src/cobalt/content/icu/icudt56b/curr/zh_Hans_SG.res
+++ b/src/cobalt/content/icu/icudt56b/curr/zh_Hans_SG.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/curr/zh_Hant.res b/src/cobalt/content/icu/icudt56b/curr/zh_Hant.res
index 9e2be04..c548a56 100644
--- a/src/cobalt/content/icu/icudt56b/curr/zh_Hant.res
+++ b/src/cobalt/content/icu/icudt56b/curr/zh_Hant.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/curr/zh_Hant_HK.res b/src/cobalt/content/icu/icudt56b/curr/zh_Hant_HK.res
index c5d17b5..e2400f9 100644
--- a/src/cobalt/content/icu/icudt56b/curr/zh_Hant_HK.res
+++ b/src/cobalt/content/icu/icudt56b/curr/zh_Hant_HK.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/curr/zh_Hant_TW.res b/src/cobalt/content/icu/icudt56b/curr/zh_Hant_TW.res
index 2e50d66..f4a45c8 100644
--- a/src/cobalt/content/icu/icudt56b/curr/zh_Hant_TW.res
+++ b/src/cobalt/content/icu/icudt56b/curr/zh_Hant_TW.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/curr/zh_SG.res b/src/cobalt/content/icu/icudt56b/curr/zh_SG.res
index 99a36d3..b14dc1b 100644
--- a/src/cobalt/content/icu/icudt56b/curr/zh_SG.res
+++ b/src/cobalt/content/icu/icudt56b/curr/zh_SG.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/curr/zh_TW.res b/src/cobalt/content/icu/icudt56b/curr/zh_TW.res
index 9f762c8..f2809d3 100644
--- a/src/cobalt/content/icu/icudt56b/curr/zh_TW.res
+++ b/src/cobalt/content/icu/icudt56b/curr/zh_TW.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/cy.res b/src/cobalt/content/icu/icudt56b/cy.res
index 1d9f4f8..c95f86c 100644
--- a/src/cobalt/content/icu/icudt56b/cy.res
+++ b/src/cobalt/content/icu/icudt56b/cy.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/da.res b/src/cobalt/content/icu/icudt56b/da.res
index b395a15..a3de9c7 100644
--- a/src/cobalt/content/icu/icudt56b/da.res
+++ b/src/cobalt/content/icu/icudt56b/da.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/de.res b/src/cobalt/content/icu/icudt56b/de.res
index 1d8c9c0..e7fe508 100644
--- a/src/cobalt/content/icu/icudt56b/de.res
+++ b/src/cobalt/content/icu/icudt56b/de.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/de_AT.res b/src/cobalt/content/icu/icudt56b/de_AT.res
index 5774578..c92705d 100644
--- a/src/cobalt/content/icu/icudt56b/de_AT.res
+++ b/src/cobalt/content/icu/icudt56b/de_AT.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/de_CH.res b/src/cobalt/content/icu/icudt56b/de_CH.res
index df893d0..469e876 100644
--- a/src/cobalt/content/icu/icudt56b/de_CH.res
+++ b/src/cobalt/content/icu/icudt56b/de_CH.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/ee.res b/src/cobalt/content/icu/icudt56b/ee.res
index 9eac1a6..4e2f32e 100644
--- a/src/cobalt/content/icu/icudt56b/ee.res
+++ b/src/cobalt/content/icu/icudt56b/ee.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/el.res b/src/cobalt/content/icu/icudt56b/el.res
index 00123ec..b9153f6 100644
--- a/src/cobalt/content/icu/icudt56b/el.res
+++ b/src/cobalt/content/icu/icudt56b/el.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/en.res b/src/cobalt/content/icu/icudt56b/en.res
index 76a284b..68d6647 100644
--- a/src/cobalt/content/icu/icudt56b/en.res
+++ b/src/cobalt/content/icu/icudt56b/en.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/en_001.res b/src/cobalt/content/icu/icudt56b/en_001.res
index bffa753..4873c68 100644
--- a/src/cobalt/content/icu/icudt56b/en_001.res
+++ b/src/cobalt/content/icu/icudt56b/en_001.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/en_150.res b/src/cobalt/content/icu/icudt56b/en_150.res
index 1c3c688..0ee0565 100644
--- a/src/cobalt/content/icu/icudt56b/en_150.res
+++ b/src/cobalt/content/icu/icudt56b/en_150.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/en_AU.res b/src/cobalt/content/icu/icudt56b/en_AU.res
index d91db86..46f72cc 100644
--- a/src/cobalt/content/icu/icudt56b/en_AU.res
+++ b/src/cobalt/content/icu/icudt56b/en_AU.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/en_CA.res b/src/cobalt/content/icu/icudt56b/en_CA.res
index f399bd6..3f627db 100644
--- a/src/cobalt/content/icu/icudt56b/en_CA.res
+++ b/src/cobalt/content/icu/icudt56b/en_CA.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/en_GB.res b/src/cobalt/content/icu/icudt56b/en_GB.res
index 8a06e8c..b24b84e 100644
--- a/src/cobalt/content/icu/icudt56b/en_GB.res
+++ b/src/cobalt/content/icu/icudt56b/en_GB.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/en_IN.res b/src/cobalt/content/icu/icudt56b/en_IN.res
index 89b03dc..f26ad6d 100644
--- a/src/cobalt/content/icu/icudt56b/en_IN.res
+++ b/src/cobalt/content/icu/icudt56b/en_IN.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/en_NZ.res b/src/cobalt/content/icu/icudt56b/en_NZ.res
index bf1edbf..cfeff38 100644
--- a/src/cobalt/content/icu/icudt56b/en_NZ.res
+++ b/src/cobalt/content/icu/icudt56b/en_NZ.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/en_US.res b/src/cobalt/content/icu/icudt56b/en_US.res
index 0c29168..7a2eb6d 100644
--- a/src/cobalt/content/icu/icudt56b/en_US.res
+++ b/src/cobalt/content/icu/icudt56b/en_US.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/en_ZA.res b/src/cobalt/content/icu/icudt56b/en_ZA.res
index 93a8bfd..1cab436 100644
--- a/src/cobalt/content/icu/icudt56b/en_ZA.res
+++ b/src/cobalt/content/icu/icudt56b/en_ZA.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/eo.res b/src/cobalt/content/icu/icudt56b/eo.res
index 2e26830..d519476 100644
--- a/src/cobalt/content/icu/icudt56b/eo.res
+++ b/src/cobalt/content/icu/icudt56b/eo.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/es.res b/src/cobalt/content/icu/icudt56b/es.res
index a444148..bc143fd 100644
--- a/src/cobalt/content/icu/icudt56b/es.res
+++ b/src/cobalt/content/icu/icudt56b/es.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/es_419.res b/src/cobalt/content/icu/icudt56b/es_419.res
index b38d6ab..efa69dc 100644
--- a/src/cobalt/content/icu/icudt56b/es_419.res
+++ b/src/cobalt/content/icu/icudt56b/es_419.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/es_AR.res b/src/cobalt/content/icu/icudt56b/es_AR.res
index 36da772..b69693b 100644
--- a/src/cobalt/content/icu/icudt56b/es_AR.res
+++ b/src/cobalt/content/icu/icudt56b/es_AR.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/es_ES.res b/src/cobalt/content/icu/icudt56b/es_ES.res
index 0c29168..7a2eb6d 100644
--- a/src/cobalt/content/icu/icudt56b/es_ES.res
+++ b/src/cobalt/content/icu/icudt56b/es_ES.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/es_MX.res b/src/cobalt/content/icu/icudt56b/es_MX.res
index 6013a38..15f03cc 100644
--- a/src/cobalt/content/icu/icudt56b/es_MX.res
+++ b/src/cobalt/content/icu/icudt56b/es_MX.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/es_US.res b/src/cobalt/content/icu/icudt56b/es_US.res
index a525677..29ef112 100644
--- a/src/cobalt/content/icu/icudt56b/es_US.res
+++ b/src/cobalt/content/icu/icudt56b/es_US.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/et.res b/src/cobalt/content/icu/icudt56b/et.res
index 3fc0978..3c26d48 100644
--- a/src/cobalt/content/icu/icudt56b/et.res
+++ b/src/cobalt/content/icu/icudt56b/et.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/eu.res b/src/cobalt/content/icu/icudt56b/eu.res
index 21cb93e..657c9e7 100644
--- a/src/cobalt/content/icu/icudt56b/eu.res
+++ b/src/cobalt/content/icu/icudt56b/eu.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/fa.res b/src/cobalt/content/icu/icudt56b/fa.res
index 0080495..42b2153 100644
--- a/src/cobalt/content/icu/icudt56b/fa.res
+++ b/src/cobalt/content/icu/icudt56b/fa.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/fi.res b/src/cobalt/content/icu/icudt56b/fi.res
index 2448243..bb939bd 100644
--- a/src/cobalt/content/icu/icudt56b/fi.res
+++ b/src/cobalt/content/icu/icudt56b/fi.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/fil.res b/src/cobalt/content/icu/icudt56b/fil.res
index 74e424d..e20dbae 100644
--- a/src/cobalt/content/icu/icudt56b/fil.res
+++ b/src/cobalt/content/icu/icudt56b/fil.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/fo.res b/src/cobalt/content/icu/icudt56b/fo.res
index bef3ad7..577b4be 100644
--- a/src/cobalt/content/icu/icudt56b/fo.res
+++ b/src/cobalt/content/icu/icudt56b/fo.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/fr.res b/src/cobalt/content/icu/icudt56b/fr.res
index dd3447d..098feaf 100644
--- a/src/cobalt/content/icu/icudt56b/fr.res
+++ b/src/cobalt/content/icu/icudt56b/fr.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/fr_CA.res b/src/cobalt/content/icu/icudt56b/fr_CA.res
index 5521151..8108be1 100644
--- a/src/cobalt/content/icu/icudt56b/fr_CA.res
+++ b/src/cobalt/content/icu/icudt56b/fr_CA.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/fr_CH.res b/src/cobalt/content/icu/icudt56b/fr_CH.res
index 752e262..79b462a 100644
--- a/src/cobalt/content/icu/icudt56b/fr_CH.res
+++ b/src/cobalt/content/icu/icudt56b/fr_CH.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/ga.res b/src/cobalt/content/icu/icudt56b/ga.res
index 88d5ab5..3398f22 100644
--- a/src/cobalt/content/icu/icudt56b/ga.res
+++ b/src/cobalt/content/icu/icudt56b/ga.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/gl.res b/src/cobalt/content/icu/icudt56b/gl.res
index 72c9a1c..d3d96da 100644
--- a/src/cobalt/content/icu/icudt56b/gl.res
+++ b/src/cobalt/content/icu/icudt56b/gl.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/gu.res b/src/cobalt/content/icu/icudt56b/gu.res
index 85d3ce9..628c409 100644
--- a/src/cobalt/content/icu/icudt56b/gu.res
+++ b/src/cobalt/content/icu/icudt56b/gu.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/ha.res b/src/cobalt/content/icu/icudt56b/ha.res
index 43e404f..1093733 100644
--- a/src/cobalt/content/icu/icudt56b/ha.res
+++ b/src/cobalt/content/icu/icudt56b/ha.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/haw.res b/src/cobalt/content/icu/icudt56b/haw.res
index 60ead40..1e1c2bb 100644
--- a/src/cobalt/content/icu/icudt56b/haw.res
+++ b/src/cobalt/content/icu/icudt56b/haw.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/he.res b/src/cobalt/content/icu/icudt56b/he.res
index ebbeb7c..aa5b464 100644
--- a/src/cobalt/content/icu/icudt56b/he.res
+++ b/src/cobalt/content/icu/icudt56b/he.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/hi.res b/src/cobalt/content/icu/icudt56b/hi.res
index dc70299..0e341e9 100644
--- a/src/cobalt/content/icu/icudt56b/hi.res
+++ b/src/cobalt/content/icu/icudt56b/hi.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/hr.res b/src/cobalt/content/icu/icudt56b/hr.res
index 6bceb0c..1fce684 100644
--- a/src/cobalt/content/icu/icudt56b/hr.res
+++ b/src/cobalt/content/icu/icudt56b/hr.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/hu.res b/src/cobalt/content/icu/icudt56b/hu.res
index d482a63..d8bf7d3 100644
--- a/src/cobalt/content/icu/icudt56b/hu.res
+++ b/src/cobalt/content/icu/icudt56b/hu.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/hy.res b/src/cobalt/content/icu/icudt56b/hy.res
index e9ebdb6..ab5be83 100644
--- a/src/cobalt/content/icu/icudt56b/hy.res
+++ b/src/cobalt/content/icu/icudt56b/hy.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/id.res b/src/cobalt/content/icu/icudt56b/id.res
index bd5605a..8b9fb6f 100644
--- a/src/cobalt/content/icu/icudt56b/id.res
+++ b/src/cobalt/content/icu/icudt56b/id.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/ig.res b/src/cobalt/content/icu/icudt56b/ig.res
index 85f26f5..1abde9f 100644
--- a/src/cobalt/content/icu/icudt56b/ig.res
+++ b/src/cobalt/content/icu/icudt56b/ig.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/in.res b/src/cobalt/content/icu/icudt56b/in.res
index 66a82ba..9296700 100644
--- a/src/cobalt/content/icu/icudt56b/in.res
+++ b/src/cobalt/content/icu/icudt56b/in.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/is.res b/src/cobalt/content/icu/icudt56b/is.res
index 8043dda..b9d912a 100644
--- a/src/cobalt/content/icu/icudt56b/is.res
+++ b/src/cobalt/content/icu/icudt56b/is.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/it.res b/src/cobalt/content/icu/icudt56b/it.res
index aee6ca0..018008b 100644
--- a/src/cobalt/content/icu/icudt56b/it.res
+++ b/src/cobalt/content/icu/icudt56b/it.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/it_CH.res b/src/cobalt/content/icu/icudt56b/it_CH.res
index d046860..2548487 100644
--- a/src/cobalt/content/icu/icudt56b/it_CH.res
+++ b/src/cobalt/content/icu/icudt56b/it_CH.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/iw.res b/src/cobalt/content/icu/icudt56b/iw.res
index 733b115..0ba8df0 100644
--- a/src/cobalt/content/icu/icudt56b/iw.res
+++ b/src/cobalt/content/icu/icudt56b/iw.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/ja.res b/src/cobalt/content/icu/icudt56b/ja.res
index 17e8ac1..dfb8869 100644
--- a/src/cobalt/content/icu/icudt56b/ja.res
+++ b/src/cobalt/content/icu/icudt56b/ja.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/ka.res b/src/cobalt/content/icu/icudt56b/ka.res
index fc8fda6..32dbaea 100644
--- a/src/cobalt/content/icu/icudt56b/ka.res
+++ b/src/cobalt/content/icu/icudt56b/ka.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/kk.res b/src/cobalt/content/icu/icudt56b/kk.res
index 3e1d3ca..a57f103 100644
--- a/src/cobalt/content/icu/icudt56b/kk.res
+++ b/src/cobalt/content/icu/icudt56b/kk.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/km.res b/src/cobalt/content/icu/icudt56b/km.res
index 6ca2adb..30c2c9d 100644
--- a/src/cobalt/content/icu/icudt56b/km.res
+++ b/src/cobalt/content/icu/icudt56b/km.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/kn.res b/src/cobalt/content/icu/icudt56b/kn.res
index 757acd5..d383b3e 100644
--- a/src/cobalt/content/icu/icudt56b/kn.res
+++ b/src/cobalt/content/icu/icudt56b/kn.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/ko.res b/src/cobalt/content/icu/icudt56b/ko.res
index 576014a..5e00efb 100644
--- a/src/cobalt/content/icu/icudt56b/ko.res
+++ b/src/cobalt/content/icu/icudt56b/ko.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/ku.res b/src/cobalt/content/icu/icudt56b/ku.res
index 532151e..435f098 100644
--- a/src/cobalt/content/icu/icudt56b/ku.res
+++ b/src/cobalt/content/icu/icudt56b/ku.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/ky.res b/src/cobalt/content/icu/icudt56b/ky.res
index 4b7da68..5e6b81a 100644
--- a/src/cobalt/content/icu/icudt56b/ky.res
+++ b/src/cobalt/content/icu/icudt56b/ky.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/af.res b/src/cobalt/content/icu/icudt56b/lang/af.res
index c6c8d20..6d3ad7b 100644
--- a/src/cobalt/content/icu/icudt56b/lang/af.res
+++ b/src/cobalt/content/icu/icudt56b/lang/af.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/ak.res b/src/cobalt/content/icu/icudt56b/lang/ak.res
index c6c8d20..6d3ad7b 100644
--- a/src/cobalt/content/icu/icudt56b/lang/ak.res
+++ b/src/cobalt/content/icu/icudt56b/lang/ak.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/am.res b/src/cobalt/content/icu/icudt56b/lang/am.res
index 5191444..bed926c 100644
--- a/src/cobalt/content/icu/icudt56b/lang/am.res
+++ b/src/cobalt/content/icu/icudt56b/lang/am.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/an.res b/src/cobalt/content/icu/icudt56b/lang/an.res
index c6c8d20..6d3ad7b 100644
--- a/src/cobalt/content/icu/icudt56b/lang/an.res
+++ b/src/cobalt/content/icu/icudt56b/lang/an.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/ar.res b/src/cobalt/content/icu/icudt56b/lang/ar.res
index eea00ff..988eb5d 100644
--- a/src/cobalt/content/icu/icudt56b/lang/ar.res
+++ b/src/cobalt/content/icu/icudt56b/lang/ar.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/ast.res b/src/cobalt/content/icu/icudt56b/lang/ast.res
index c6c8d20..6d3ad7b 100644
--- a/src/cobalt/content/icu/icudt56b/lang/ast.res
+++ b/src/cobalt/content/icu/icudt56b/lang/ast.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/az.res b/src/cobalt/content/icu/icudt56b/lang/az.res
index c6c8d20..6d3ad7b 100644
--- a/src/cobalt/content/icu/icudt56b/lang/az.res
+++ b/src/cobalt/content/icu/icudt56b/lang/az.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/be.res b/src/cobalt/content/icu/icudt56b/lang/be.res
index c6c8d20..6d3ad7b 100644
--- a/src/cobalt/content/icu/icudt56b/lang/be.res
+++ b/src/cobalt/content/icu/icudt56b/lang/be.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/bem.res b/src/cobalt/content/icu/icudt56b/lang/bem.res
index c6c8d20..6d3ad7b 100644
--- a/src/cobalt/content/icu/icudt56b/lang/bem.res
+++ b/src/cobalt/content/icu/icudt56b/lang/bem.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/bg.res b/src/cobalt/content/icu/icudt56b/lang/bg.res
index f8ba03f..b5d1160 100644
--- a/src/cobalt/content/icu/icudt56b/lang/bg.res
+++ b/src/cobalt/content/icu/icudt56b/lang/bg.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/bn.res b/src/cobalt/content/icu/icudt56b/lang/bn.res
index fdc9cdb..b4c023e 100644
--- a/src/cobalt/content/icu/icudt56b/lang/bn.res
+++ b/src/cobalt/content/icu/icudt56b/lang/bn.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/br.res b/src/cobalt/content/icu/icudt56b/lang/br.res
index c6c8d20..6d3ad7b 100644
--- a/src/cobalt/content/icu/icudt56b/lang/br.res
+++ b/src/cobalt/content/icu/icudt56b/lang/br.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/bs.res b/src/cobalt/content/icu/icudt56b/lang/bs.res
index c6c8d20..6d3ad7b 100644
--- a/src/cobalt/content/icu/icudt56b/lang/bs.res
+++ b/src/cobalt/content/icu/icudt56b/lang/bs.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/ca.res b/src/cobalt/content/icu/icudt56b/lang/ca.res
index c05c095..6012fbf 100644
--- a/src/cobalt/content/icu/icudt56b/lang/ca.res
+++ b/src/cobalt/content/icu/icudt56b/lang/ca.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/ckb.res b/src/cobalt/content/icu/icudt56b/lang/ckb.res
index c6c8d20..6d3ad7b 100644
--- a/src/cobalt/content/icu/icudt56b/lang/ckb.res
+++ b/src/cobalt/content/icu/icudt56b/lang/ckb.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/cs.res b/src/cobalt/content/icu/icudt56b/lang/cs.res
index 5fdcad3..1da035b 100644
--- a/src/cobalt/content/icu/icudt56b/lang/cs.res
+++ b/src/cobalt/content/icu/icudt56b/lang/cs.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/cy.res b/src/cobalt/content/icu/icudt56b/lang/cy.res
index c6c8d20..6d3ad7b 100644
--- a/src/cobalt/content/icu/icudt56b/lang/cy.res
+++ b/src/cobalt/content/icu/icudt56b/lang/cy.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/da.res b/src/cobalt/content/icu/icudt56b/lang/da.res
index d3125da..81df9f3 100644
--- a/src/cobalt/content/icu/icudt56b/lang/da.res
+++ b/src/cobalt/content/icu/icudt56b/lang/da.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/de.res b/src/cobalt/content/icu/icudt56b/lang/de.res
index 97792db..34c8d12 100644
--- a/src/cobalt/content/icu/icudt56b/lang/de.res
+++ b/src/cobalt/content/icu/icudt56b/lang/de.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/ee.res b/src/cobalt/content/icu/icudt56b/lang/ee.res
index c6c8d20..6d3ad7b 100644
--- a/src/cobalt/content/icu/icudt56b/lang/ee.res
+++ b/src/cobalt/content/icu/icudt56b/lang/ee.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/el.res b/src/cobalt/content/icu/icudt56b/lang/el.res
index b851f9a..a5a08c5 100644
--- a/src/cobalt/content/icu/icudt56b/lang/el.res
+++ b/src/cobalt/content/icu/icudt56b/lang/el.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/en.res b/src/cobalt/content/icu/icudt56b/lang/en.res
index 747e6f3..d429522 100644
--- a/src/cobalt/content/icu/icudt56b/lang/en.res
+++ b/src/cobalt/content/icu/icudt56b/lang/en.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/en_GB.res b/src/cobalt/content/icu/icudt56b/lang/en_GB.res
index cb1670b..0a55f56 100644
--- a/src/cobalt/content/icu/icudt56b/lang/en_GB.res
+++ b/src/cobalt/content/icu/icudt56b/lang/en_GB.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/eo.res b/src/cobalt/content/icu/icudt56b/lang/eo.res
index c6c8d20..6d3ad7b 100644
--- a/src/cobalt/content/icu/icudt56b/lang/eo.res
+++ b/src/cobalt/content/icu/icudt56b/lang/eo.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/es.res b/src/cobalt/content/icu/icudt56b/lang/es.res
index 7eedb98..ee3ae99 100644
--- a/src/cobalt/content/icu/icudt56b/lang/es.res
+++ b/src/cobalt/content/icu/icudt56b/lang/es.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/es_419.res b/src/cobalt/content/icu/icudt56b/lang/es_419.res
index 107cc66..6447346 100644
--- a/src/cobalt/content/icu/icudt56b/lang/es_419.res
+++ b/src/cobalt/content/icu/icudt56b/lang/es_419.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/et.res b/src/cobalt/content/icu/icudt56b/lang/et.res
index 0b0146b..d588e70 100644
--- a/src/cobalt/content/icu/icudt56b/lang/et.res
+++ b/src/cobalt/content/icu/icudt56b/lang/et.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/eu.res b/src/cobalt/content/icu/icudt56b/lang/eu.res
index c6c8d20..6d3ad7b 100644
--- a/src/cobalt/content/icu/icudt56b/lang/eu.res
+++ b/src/cobalt/content/icu/icudt56b/lang/eu.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/fa.res b/src/cobalt/content/icu/icudt56b/lang/fa.res
index 59d9442..3fd2782 100644
--- a/src/cobalt/content/icu/icudt56b/lang/fa.res
+++ b/src/cobalt/content/icu/icudt56b/lang/fa.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/fi.res b/src/cobalt/content/icu/icudt56b/lang/fi.res
index 1ada0a1..4f10019 100644
--- a/src/cobalt/content/icu/icudt56b/lang/fi.res
+++ b/src/cobalt/content/icu/icudt56b/lang/fi.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/fil.res b/src/cobalt/content/icu/icudt56b/lang/fil.res
index 62740af..1f994f7 100644
--- a/src/cobalt/content/icu/icudt56b/lang/fil.res
+++ b/src/cobalt/content/icu/icudt56b/lang/fil.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/fo.res b/src/cobalt/content/icu/icudt56b/lang/fo.res
index c6c8d20..6d3ad7b 100644
--- a/src/cobalt/content/icu/icudt56b/lang/fo.res
+++ b/src/cobalt/content/icu/icudt56b/lang/fo.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/fr.res b/src/cobalt/content/icu/icudt56b/lang/fr.res
index 57fcb6e..3a15959 100644
--- a/src/cobalt/content/icu/icudt56b/lang/fr.res
+++ b/src/cobalt/content/icu/icudt56b/lang/fr.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/ga.res b/src/cobalt/content/icu/icudt56b/lang/ga.res
index c6c8d20..6d3ad7b 100644
--- a/src/cobalt/content/icu/icudt56b/lang/ga.res
+++ b/src/cobalt/content/icu/icudt56b/lang/ga.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/gl.res b/src/cobalt/content/icu/icudt56b/lang/gl.res
index c6c8d20..6d3ad7b 100644
--- a/src/cobalt/content/icu/icudt56b/lang/gl.res
+++ b/src/cobalt/content/icu/icudt56b/lang/gl.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/gu.res b/src/cobalt/content/icu/icudt56b/lang/gu.res
index b8f8fce..1fd7b89 100644
--- a/src/cobalt/content/icu/icudt56b/lang/gu.res
+++ b/src/cobalt/content/icu/icudt56b/lang/gu.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/ha.res b/src/cobalt/content/icu/icudt56b/lang/ha.res
index c6c8d20..6d3ad7b 100644
--- a/src/cobalt/content/icu/icudt56b/lang/ha.res
+++ b/src/cobalt/content/icu/icudt56b/lang/ha.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/haw.res b/src/cobalt/content/icu/icudt56b/lang/haw.res
index c6c8d20..6d3ad7b 100644
--- a/src/cobalt/content/icu/icudt56b/lang/haw.res
+++ b/src/cobalt/content/icu/icudt56b/lang/haw.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/he.res b/src/cobalt/content/icu/icudt56b/lang/he.res
index a61e424..2fd4b4d 100644
--- a/src/cobalt/content/icu/icudt56b/lang/he.res
+++ b/src/cobalt/content/icu/icudt56b/lang/he.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/hi.res b/src/cobalt/content/icu/icudt56b/lang/hi.res
index 57c4718..0fb4fc6 100644
--- a/src/cobalt/content/icu/icudt56b/lang/hi.res
+++ b/src/cobalt/content/icu/icudt56b/lang/hi.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/hr.res b/src/cobalt/content/icu/icudt56b/lang/hr.res
index 3eb40c6..dd724b5 100644
--- a/src/cobalt/content/icu/icudt56b/lang/hr.res
+++ b/src/cobalt/content/icu/icudt56b/lang/hr.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/hu.res b/src/cobalt/content/icu/icudt56b/lang/hu.res
index 4185bcd..dbe5b44 100644
--- a/src/cobalt/content/icu/icudt56b/lang/hu.res
+++ b/src/cobalt/content/icu/icudt56b/lang/hu.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/hy.res b/src/cobalt/content/icu/icudt56b/lang/hy.res
index c6c8d20..6d3ad7b 100644
--- a/src/cobalt/content/icu/icudt56b/lang/hy.res
+++ b/src/cobalt/content/icu/icudt56b/lang/hy.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/id.res b/src/cobalt/content/icu/icudt56b/lang/id.res
index cb760e1..9747eec 100644
--- a/src/cobalt/content/icu/icudt56b/lang/id.res
+++ b/src/cobalt/content/icu/icudt56b/lang/id.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/ig.res b/src/cobalt/content/icu/icudt56b/lang/ig.res
index c6c8d20..6d3ad7b 100644
--- a/src/cobalt/content/icu/icudt56b/lang/ig.res
+++ b/src/cobalt/content/icu/icudt56b/lang/ig.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/in.res b/src/cobalt/content/icu/icudt56b/lang/in.res
index b2c35ef..da98b73 100644
--- a/src/cobalt/content/icu/icudt56b/lang/in.res
+++ b/src/cobalt/content/icu/icudt56b/lang/in.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/is.res b/src/cobalt/content/icu/icudt56b/lang/is.res
index c6c8d20..6d3ad7b 100644
--- a/src/cobalt/content/icu/icudt56b/lang/is.res
+++ b/src/cobalt/content/icu/icudt56b/lang/is.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/it.res b/src/cobalt/content/icu/icudt56b/lang/it.res
index d4b0ffc..370955f 100644
--- a/src/cobalt/content/icu/icudt56b/lang/it.res
+++ b/src/cobalt/content/icu/icudt56b/lang/it.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/iw.res b/src/cobalt/content/icu/icudt56b/lang/iw.res
index 247bf06..d111f93 100644
--- a/src/cobalt/content/icu/icudt56b/lang/iw.res
+++ b/src/cobalt/content/icu/icudt56b/lang/iw.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/ja.res b/src/cobalt/content/icu/icudt56b/lang/ja.res
index 674dbb7..2190b76 100644
--- a/src/cobalt/content/icu/icudt56b/lang/ja.res
+++ b/src/cobalt/content/icu/icudt56b/lang/ja.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/ka.res b/src/cobalt/content/icu/icudt56b/lang/ka.res
index c6c8d20..6d3ad7b 100644
--- a/src/cobalt/content/icu/icudt56b/lang/ka.res
+++ b/src/cobalt/content/icu/icudt56b/lang/ka.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/kk.res b/src/cobalt/content/icu/icudt56b/lang/kk.res
index c6c8d20..6d3ad7b 100644
--- a/src/cobalt/content/icu/icudt56b/lang/kk.res
+++ b/src/cobalt/content/icu/icudt56b/lang/kk.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/km.res b/src/cobalt/content/icu/icudt56b/lang/km.res
index c6c8d20..6d3ad7b 100644
--- a/src/cobalt/content/icu/icudt56b/lang/km.res
+++ b/src/cobalt/content/icu/icudt56b/lang/km.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/kn.res b/src/cobalt/content/icu/icudt56b/lang/kn.res
index 381a80b..0608b45 100644
--- a/src/cobalt/content/icu/icudt56b/lang/kn.res
+++ b/src/cobalt/content/icu/icudt56b/lang/kn.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/ko.res b/src/cobalt/content/icu/icudt56b/lang/ko.res
index f89b341..9bb7b3c 100644
--- a/src/cobalt/content/icu/icudt56b/lang/ko.res
+++ b/src/cobalt/content/icu/icudt56b/lang/ko.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/ku.res b/src/cobalt/content/icu/icudt56b/lang/ku.res
index c6c8d20..6d3ad7b 100644
--- a/src/cobalt/content/icu/icudt56b/lang/ku.res
+++ b/src/cobalt/content/icu/icudt56b/lang/ku.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/ky.res b/src/cobalt/content/icu/icudt56b/lang/ky.res
index c6c8d20..6d3ad7b 100644
--- a/src/cobalt/content/icu/icudt56b/lang/ky.res
+++ b/src/cobalt/content/icu/icudt56b/lang/ky.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/lg.res b/src/cobalt/content/icu/icudt56b/lang/lg.res
index c6c8d20..6d3ad7b 100644
--- a/src/cobalt/content/icu/icudt56b/lang/lg.res
+++ b/src/cobalt/content/icu/icudt56b/lang/lg.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/ln.res b/src/cobalt/content/icu/icudt56b/lang/ln.res
index c6c8d20..6d3ad7b 100644
--- a/src/cobalt/content/icu/icudt56b/lang/ln.res
+++ b/src/cobalt/content/icu/icudt56b/lang/ln.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/lo.res b/src/cobalt/content/icu/icudt56b/lang/lo.res
index c6c8d20..6d3ad7b 100644
--- a/src/cobalt/content/icu/icudt56b/lang/lo.res
+++ b/src/cobalt/content/icu/icudt56b/lang/lo.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/lt.res b/src/cobalt/content/icu/icudt56b/lang/lt.res
index 471b004..bca1349 100644
--- a/src/cobalt/content/icu/icudt56b/lang/lt.res
+++ b/src/cobalt/content/icu/icudt56b/lang/lt.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/lv.res b/src/cobalt/content/icu/icudt56b/lang/lv.res
index 993c698..d0700b9 100644
--- a/src/cobalt/content/icu/icudt56b/lang/lv.res
+++ b/src/cobalt/content/icu/icudt56b/lang/lv.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/mfe.res b/src/cobalt/content/icu/icudt56b/lang/mfe.res
index c6c8d20..6d3ad7b 100644
--- a/src/cobalt/content/icu/icudt56b/lang/mfe.res
+++ b/src/cobalt/content/icu/icudt56b/lang/mfe.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/mg.res b/src/cobalt/content/icu/icudt56b/lang/mg.res
index c6c8d20..6d3ad7b 100644
--- a/src/cobalt/content/icu/icudt56b/lang/mg.res
+++ b/src/cobalt/content/icu/icudt56b/lang/mg.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/mk.res b/src/cobalt/content/icu/icudt56b/lang/mk.res
index c6c8d20..6d3ad7b 100644
--- a/src/cobalt/content/icu/icudt56b/lang/mk.res
+++ b/src/cobalt/content/icu/icudt56b/lang/mk.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/ml.res b/src/cobalt/content/icu/icudt56b/lang/ml.res
index c40ffa5..0c1c6b5 100644
--- a/src/cobalt/content/icu/icudt56b/lang/ml.res
+++ b/src/cobalt/content/icu/icudt56b/lang/ml.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/mn.res b/src/cobalt/content/icu/icudt56b/lang/mn.res
index c6c8d20..6d3ad7b 100644
--- a/src/cobalt/content/icu/icudt56b/lang/mn.res
+++ b/src/cobalt/content/icu/icudt56b/lang/mn.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/mo.res b/src/cobalt/content/icu/icudt56b/lang/mo.res
index ee0ea49..ed7653e 100644
--- a/src/cobalt/content/icu/icudt56b/lang/mo.res
+++ b/src/cobalt/content/icu/icudt56b/lang/mo.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/mr.res b/src/cobalt/content/icu/icudt56b/lang/mr.res
index 2c1943c..27d225f 100644
--- a/src/cobalt/content/icu/icudt56b/lang/mr.res
+++ b/src/cobalt/content/icu/icudt56b/lang/mr.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/ms.res b/src/cobalt/content/icu/icudt56b/lang/ms.res
index c40316d..21cc141 100644
--- a/src/cobalt/content/icu/icudt56b/lang/ms.res
+++ b/src/cobalt/content/icu/icudt56b/lang/ms.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/mt.res b/src/cobalt/content/icu/icudt56b/lang/mt.res
index c6c8d20..6d3ad7b 100644
--- a/src/cobalt/content/icu/icudt56b/lang/mt.res
+++ b/src/cobalt/content/icu/icudt56b/lang/mt.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/my.res b/src/cobalt/content/icu/icudt56b/lang/my.res
index c6c8d20..6d3ad7b 100644
--- a/src/cobalt/content/icu/icudt56b/lang/my.res
+++ b/src/cobalt/content/icu/icudt56b/lang/my.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/nb.res b/src/cobalt/content/icu/icudt56b/lang/nb.res
index 5112e25..2878212 100644
--- a/src/cobalt/content/icu/icudt56b/lang/nb.res
+++ b/src/cobalt/content/icu/icudt56b/lang/nb.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/ne.res b/src/cobalt/content/icu/icudt56b/lang/ne.res
index c6c8d20..6d3ad7b 100644
--- a/src/cobalt/content/icu/icudt56b/lang/ne.res
+++ b/src/cobalt/content/icu/icudt56b/lang/ne.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/nl.res b/src/cobalt/content/icu/icudt56b/lang/nl.res
index 751ba02..1459803 100644
--- a/src/cobalt/content/icu/icudt56b/lang/nl.res
+++ b/src/cobalt/content/icu/icudt56b/lang/nl.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/nn.res b/src/cobalt/content/icu/icudt56b/lang/nn.res
index c6c8d20..6d3ad7b 100644
--- a/src/cobalt/content/icu/icudt56b/lang/nn.res
+++ b/src/cobalt/content/icu/icudt56b/lang/nn.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/no.res b/src/cobalt/content/icu/icudt56b/lang/no.res
index a0258b7..7975dbd 100644
--- a/src/cobalt/content/icu/icudt56b/lang/no.res
+++ b/src/cobalt/content/icu/icudt56b/lang/no.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/nyn.res b/src/cobalt/content/icu/icudt56b/lang/nyn.res
index c6c8d20..6d3ad7b 100644
--- a/src/cobalt/content/icu/icudt56b/lang/nyn.res
+++ b/src/cobalt/content/icu/icudt56b/lang/nyn.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/om.res b/src/cobalt/content/icu/icudt56b/lang/om.res
index c6c8d20..6d3ad7b 100644
--- a/src/cobalt/content/icu/icudt56b/lang/om.res
+++ b/src/cobalt/content/icu/icudt56b/lang/om.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/or.res b/src/cobalt/content/icu/icudt56b/lang/or.res
index c6c8d20..6d3ad7b 100644
--- a/src/cobalt/content/icu/icudt56b/lang/or.res
+++ b/src/cobalt/content/icu/icudt56b/lang/or.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/pa.res b/src/cobalt/content/icu/icudt56b/lang/pa.res
index c6c8d20..6d3ad7b 100644
--- a/src/cobalt/content/icu/icudt56b/lang/pa.res
+++ b/src/cobalt/content/icu/icudt56b/lang/pa.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/pl.res b/src/cobalt/content/icu/icudt56b/lang/pl.res
index d67c390..2652e03 100644
--- a/src/cobalt/content/icu/icudt56b/lang/pl.res
+++ b/src/cobalt/content/icu/icudt56b/lang/pl.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/pool.res b/src/cobalt/content/icu/icudt56b/lang/pool.res
index 76166a1..7fd7f96 100644
--- a/src/cobalt/content/icu/icudt56b/lang/pool.res
+++ b/src/cobalt/content/icu/icudt56b/lang/pool.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/ps.res b/src/cobalt/content/icu/icudt56b/lang/ps.res
index c6c8d20..6d3ad7b 100644
--- a/src/cobalt/content/icu/icudt56b/lang/ps.res
+++ b/src/cobalt/content/icu/icudt56b/lang/ps.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/pt.res b/src/cobalt/content/icu/icudt56b/lang/pt.res
index 0ae2863..cbc0145 100644
--- a/src/cobalt/content/icu/icudt56b/lang/pt.res
+++ b/src/cobalt/content/icu/icudt56b/lang/pt.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/pt_PT.res b/src/cobalt/content/icu/icudt56b/lang/pt_PT.res
index 90433ce..453e716 100644
--- a/src/cobalt/content/icu/icudt56b/lang/pt_PT.res
+++ b/src/cobalt/content/icu/icudt56b/lang/pt_PT.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/rm.res b/src/cobalt/content/icu/icudt56b/lang/rm.res
index c6c8d20..6d3ad7b 100644
--- a/src/cobalt/content/icu/icudt56b/lang/rm.res
+++ b/src/cobalt/content/icu/icudt56b/lang/rm.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/rn.res b/src/cobalt/content/icu/icudt56b/lang/rn.res
index c6c8d20..6d3ad7b 100644
--- a/src/cobalt/content/icu/icudt56b/lang/rn.res
+++ b/src/cobalt/content/icu/icudt56b/lang/rn.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/ro.res b/src/cobalt/content/icu/icudt56b/lang/ro.res
index e9aa6fa..05034d8 100644
--- a/src/cobalt/content/icu/icudt56b/lang/ro.res
+++ b/src/cobalt/content/icu/icudt56b/lang/ro.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/ro_MD.res b/src/cobalt/content/icu/icudt56b/lang/ro_MD.res
index 78ed83b..6b0be86 100644
--- a/src/cobalt/content/icu/icudt56b/lang/ro_MD.res
+++ b/src/cobalt/content/icu/icudt56b/lang/ro_MD.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/root.res b/src/cobalt/content/icu/icudt56b/lang/root.res
index dc0042b..b13f41b 100644
--- a/src/cobalt/content/icu/icudt56b/lang/root.res
+++ b/src/cobalt/content/icu/icudt56b/lang/root.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/ru.res b/src/cobalt/content/icu/icudt56b/lang/ru.res
index 1ecc96f..9d3e7dc 100644
--- a/src/cobalt/content/icu/icudt56b/lang/ru.res
+++ b/src/cobalt/content/icu/icudt56b/lang/ru.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/rw.res b/src/cobalt/content/icu/icudt56b/lang/rw.res
index c6c8d20..6d3ad7b 100644
--- a/src/cobalt/content/icu/icudt56b/lang/rw.res
+++ b/src/cobalt/content/icu/icudt56b/lang/rw.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/sh.res b/src/cobalt/content/icu/icudt56b/lang/sh.res
index bd2f9e8..64eb35f 100644
--- a/src/cobalt/content/icu/icudt56b/lang/sh.res
+++ b/src/cobalt/content/icu/icudt56b/lang/sh.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/si.res b/src/cobalt/content/icu/icudt56b/lang/si.res
index c6c8d20..6d3ad7b 100644
--- a/src/cobalt/content/icu/icudt56b/lang/si.res
+++ b/src/cobalt/content/icu/icudt56b/lang/si.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/sk.res b/src/cobalt/content/icu/icudt56b/lang/sk.res
index 15be576..6e91d73 100644
--- a/src/cobalt/content/icu/icudt56b/lang/sk.res
+++ b/src/cobalt/content/icu/icudt56b/lang/sk.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/sl.res b/src/cobalt/content/icu/icudt56b/lang/sl.res
index 8c364c2..8e79881 100644
--- a/src/cobalt/content/icu/icudt56b/lang/sl.res
+++ b/src/cobalt/content/icu/icudt56b/lang/sl.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/sn.res b/src/cobalt/content/icu/icudt56b/lang/sn.res
index c6c8d20..6d3ad7b 100644
--- a/src/cobalt/content/icu/icudt56b/lang/sn.res
+++ b/src/cobalt/content/icu/icudt56b/lang/sn.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/so.res b/src/cobalt/content/icu/icudt56b/lang/so.res
index c6c8d20..6d3ad7b 100644
--- a/src/cobalt/content/icu/icudt56b/lang/so.res
+++ b/src/cobalt/content/icu/icudt56b/lang/so.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/sq.res b/src/cobalt/content/icu/icudt56b/lang/sq.res
index c6c8d20..6d3ad7b 100644
--- a/src/cobalt/content/icu/icudt56b/lang/sq.res
+++ b/src/cobalt/content/icu/icudt56b/lang/sq.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/sr.res b/src/cobalt/content/icu/icudt56b/lang/sr.res
index 6d3aa9d..dc9b003 100644
--- a/src/cobalt/content/icu/icudt56b/lang/sr.res
+++ b/src/cobalt/content/icu/icudt56b/lang/sr.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/sr_Latn.res b/src/cobalt/content/icu/icudt56b/lang/sr_Latn.res
index 0dced64..01ac57f 100644
--- a/src/cobalt/content/icu/icudt56b/lang/sr_Latn.res
+++ b/src/cobalt/content/icu/icudt56b/lang/sr_Latn.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/sv.res b/src/cobalt/content/icu/icudt56b/lang/sv.res
index ee2aa38..d7bb8bf 100644
--- a/src/cobalt/content/icu/icudt56b/lang/sv.res
+++ b/src/cobalt/content/icu/icudt56b/lang/sv.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/sw.res b/src/cobalt/content/icu/icudt56b/lang/sw.res
index e64c5da..d33af54 100644
--- a/src/cobalt/content/icu/icudt56b/lang/sw.res
+++ b/src/cobalt/content/icu/icudt56b/lang/sw.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/ta.res b/src/cobalt/content/icu/icudt56b/lang/ta.res
index dd6d2fa..c58fff5 100644
--- a/src/cobalt/content/icu/icudt56b/lang/ta.res
+++ b/src/cobalt/content/icu/icudt56b/lang/ta.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/te.res b/src/cobalt/content/icu/icudt56b/lang/te.res
index 4dbcb83..a0334d2 100644
--- a/src/cobalt/content/icu/icudt56b/lang/te.res
+++ b/src/cobalt/content/icu/icudt56b/lang/te.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/tg.res b/src/cobalt/content/icu/icudt56b/lang/tg.res
index c6c8d20..6d3ad7b 100644
--- a/src/cobalt/content/icu/icudt56b/lang/tg.res
+++ b/src/cobalt/content/icu/icudt56b/lang/tg.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/th.res b/src/cobalt/content/icu/icudt56b/lang/th.res
index 8de2e9b..369e86e 100644
--- a/src/cobalt/content/icu/icudt56b/lang/th.res
+++ b/src/cobalt/content/icu/icudt56b/lang/th.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/ti.res b/src/cobalt/content/icu/icudt56b/lang/ti.res
index c6c8d20..6d3ad7b 100644
--- a/src/cobalt/content/icu/icudt56b/lang/ti.res
+++ b/src/cobalt/content/icu/icudt56b/lang/ti.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/tl.res b/src/cobalt/content/icu/icudt56b/lang/tl.res
index 13882f7..cb41750 100644
--- a/src/cobalt/content/icu/icudt56b/lang/tl.res
+++ b/src/cobalt/content/icu/icudt56b/lang/tl.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/to.res b/src/cobalt/content/icu/icudt56b/lang/to.res
index c6c8d20..6d3ad7b 100644
--- a/src/cobalt/content/icu/icudt56b/lang/to.res
+++ b/src/cobalt/content/icu/icudt56b/lang/to.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/tr.res b/src/cobalt/content/icu/icudt56b/lang/tr.res
index f11ddd9..a7d7c37 100644
--- a/src/cobalt/content/icu/icudt56b/lang/tr.res
+++ b/src/cobalt/content/icu/icudt56b/lang/tr.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/uk.res b/src/cobalt/content/icu/icudt56b/lang/uk.res
index 5d353fd..baa2048 100644
--- a/src/cobalt/content/icu/icudt56b/lang/uk.res
+++ b/src/cobalt/content/icu/icudt56b/lang/uk.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/ur.res b/src/cobalt/content/icu/icudt56b/lang/ur.res
index c6c8d20..6d3ad7b 100644
--- a/src/cobalt/content/icu/icudt56b/lang/ur.res
+++ b/src/cobalt/content/icu/icudt56b/lang/ur.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/uz.res b/src/cobalt/content/icu/icudt56b/lang/uz.res
index c6c8d20..6d3ad7b 100644
--- a/src/cobalt/content/icu/icudt56b/lang/uz.res
+++ b/src/cobalt/content/icu/icudt56b/lang/uz.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/vi.res b/src/cobalt/content/icu/icudt56b/lang/vi.res
index 12b8b24..46117dd 100644
--- a/src/cobalt/content/icu/icudt56b/lang/vi.res
+++ b/src/cobalt/content/icu/icudt56b/lang/vi.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/wa.res b/src/cobalt/content/icu/icudt56b/lang/wa.res
index c6c8d20..6d3ad7b 100644
--- a/src/cobalt/content/icu/icudt56b/lang/wa.res
+++ b/src/cobalt/content/icu/icudt56b/lang/wa.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/yo.res b/src/cobalt/content/icu/icudt56b/lang/yo.res
index c6c8d20..6d3ad7b 100644
--- a/src/cobalt/content/icu/icudt56b/lang/yo.res
+++ b/src/cobalt/content/icu/icudt56b/lang/yo.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/zh.res b/src/cobalt/content/icu/icudt56b/lang/zh.res
index 0efbae2..ed8ec1a 100644
--- a/src/cobalt/content/icu/icudt56b/lang/zh.res
+++ b/src/cobalt/content/icu/icudt56b/lang/zh.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/zh_CN.res b/src/cobalt/content/icu/icudt56b/lang/zh_CN.res
index bcba38b..5e3c9fa 100644
--- a/src/cobalt/content/icu/icudt56b/lang/zh_CN.res
+++ b/src/cobalt/content/icu/icudt56b/lang/zh_CN.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/zh_HK.res b/src/cobalt/content/icu/icudt56b/lang/zh_HK.res
index 6808174..1de3637 100644
--- a/src/cobalt/content/icu/icudt56b/lang/zh_HK.res
+++ b/src/cobalt/content/icu/icudt56b/lang/zh_HK.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/zh_Hans.res b/src/cobalt/content/icu/icudt56b/lang/zh_Hans.res
index b72028d..02c942c 100644
--- a/src/cobalt/content/icu/icudt56b/lang/zh_Hans.res
+++ b/src/cobalt/content/icu/icudt56b/lang/zh_Hans.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/zh_Hans_CN.res b/src/cobalt/content/icu/icudt56b/lang/zh_Hans_CN.res
index 78ed83b..6b0be86 100644
--- a/src/cobalt/content/icu/icudt56b/lang/zh_Hans_CN.res
+++ b/src/cobalt/content/icu/icudt56b/lang/zh_Hans_CN.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/zh_Hans_SG.res b/src/cobalt/content/icu/icudt56b/lang/zh_Hans_SG.res
index 78ed83b..6b0be86 100644
--- a/src/cobalt/content/icu/icudt56b/lang/zh_Hans_SG.res
+++ b/src/cobalt/content/icu/icudt56b/lang/zh_Hans_SG.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/zh_Hant.res b/src/cobalt/content/icu/icudt56b/lang/zh_Hant.res
index 62daeab..bbdf8d3 100644
--- a/src/cobalt/content/icu/icudt56b/lang/zh_Hant.res
+++ b/src/cobalt/content/icu/icudt56b/lang/zh_Hant.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/zh_Hant_HK.res b/src/cobalt/content/icu/icudt56b/lang/zh_Hant_HK.res
index cac443a..e3b3eba 100644
--- a/src/cobalt/content/icu/icudt56b/lang/zh_Hant_HK.res
+++ b/src/cobalt/content/icu/icudt56b/lang/zh_Hant_HK.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/zh_Hant_TW.res b/src/cobalt/content/icu/icudt56b/lang/zh_Hant_TW.res
index 78ed83b..6b0be86 100644
--- a/src/cobalt/content/icu/icudt56b/lang/zh_Hant_TW.res
+++ b/src/cobalt/content/icu/icudt56b/lang/zh_Hant_TW.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/zh_SG.res b/src/cobalt/content/icu/icudt56b/lang/zh_SG.res
index f08cca6..bcdacc7 100644
--- a/src/cobalt/content/icu/icudt56b/lang/zh_SG.res
+++ b/src/cobalt/content/icu/icudt56b/lang/zh_SG.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/zh_TW.res b/src/cobalt/content/icu/icudt56b/lang/zh_TW.res
index 60f9f5f..1b66f29 100644
--- a/src/cobalt/content/icu/icudt56b/lang/zh_TW.res
+++ b/src/cobalt/content/icu/icudt56b/lang/zh_TW.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lang/zu.res b/src/cobalt/content/icu/icudt56b/lang/zu.res
index c6c8d20..6d3ad7b 100644
--- a/src/cobalt/content/icu/icudt56b/lang/zu.res
+++ b/src/cobalt/content/icu/icudt56b/lang/zu.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lg.res b/src/cobalt/content/icu/icudt56b/lg.res
index f920156..badaef3 100644
--- a/src/cobalt/content/icu/icudt56b/lg.res
+++ b/src/cobalt/content/icu/icudt56b/lg.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/ln.res b/src/cobalt/content/icu/icudt56b/ln.res
index 1ff9d2e..b94dedf 100644
--- a/src/cobalt/content/icu/icudt56b/ln.res
+++ b/src/cobalt/content/icu/icudt56b/ln.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lo.res b/src/cobalt/content/icu/icudt56b/lo.res
index 61577ec..5b4f7f8 100644
--- a/src/cobalt/content/icu/icudt56b/lo.res
+++ b/src/cobalt/content/icu/icudt56b/lo.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lt.res b/src/cobalt/content/icu/icudt56b/lt.res
index ddd87c1..ec9ce5a 100644
--- a/src/cobalt/content/icu/icudt56b/lt.res
+++ b/src/cobalt/content/icu/icudt56b/lt.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/lv.res b/src/cobalt/content/icu/icudt56b/lv.res
index b775599..55a6542 100644
--- a/src/cobalt/content/icu/icudt56b/lv.res
+++ b/src/cobalt/content/icu/icudt56b/lv.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/mfe.res b/src/cobalt/content/icu/icudt56b/mfe.res
index 2d4dbb2..8a199ea 100644
--- a/src/cobalt/content/icu/icudt56b/mfe.res
+++ b/src/cobalt/content/icu/icudt56b/mfe.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/mg.res b/src/cobalt/content/icu/icudt56b/mg.res
index ff7da77..018ea5b 100644
--- a/src/cobalt/content/icu/icudt56b/mg.res
+++ b/src/cobalt/content/icu/icudt56b/mg.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/mk.res b/src/cobalt/content/icu/icudt56b/mk.res
index ca66c66..cc3a879 100644
--- a/src/cobalt/content/icu/icudt56b/mk.res
+++ b/src/cobalt/content/icu/icudt56b/mk.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/ml.res b/src/cobalt/content/icu/icudt56b/ml.res
index a2ed6e3..23a1971 100644
--- a/src/cobalt/content/icu/icudt56b/ml.res
+++ b/src/cobalt/content/icu/icudt56b/ml.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/mn.res b/src/cobalt/content/icu/icudt56b/mn.res
index 95aaecb..55b8d55 100644
--- a/src/cobalt/content/icu/icudt56b/mn.res
+++ b/src/cobalt/content/icu/icudt56b/mn.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/mo.res b/src/cobalt/content/icu/icudt56b/mo.res
index 05eef9b..b252a1b 100644
--- a/src/cobalt/content/icu/icudt56b/mo.res
+++ b/src/cobalt/content/icu/icudt56b/mo.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/mr.res b/src/cobalt/content/icu/icudt56b/mr.res
index 0c8f196..3de81ed 100644
--- a/src/cobalt/content/icu/icudt56b/mr.res
+++ b/src/cobalt/content/icu/icudt56b/mr.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/ms.res b/src/cobalt/content/icu/icudt56b/ms.res
index 21d82f1..4be9461 100644
--- a/src/cobalt/content/icu/icudt56b/ms.res
+++ b/src/cobalt/content/icu/icudt56b/ms.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/mt.res b/src/cobalt/content/icu/icudt56b/mt.res
index 771e308..62d55a5 100644
--- a/src/cobalt/content/icu/icudt56b/mt.res
+++ b/src/cobalt/content/icu/icudt56b/mt.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/my.res b/src/cobalt/content/icu/icudt56b/my.res
index ca6a009..04fdbd2 100644
--- a/src/cobalt/content/icu/icudt56b/my.res
+++ b/src/cobalt/content/icu/icudt56b/my.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/nb.res b/src/cobalt/content/icu/icudt56b/nb.res
index 0c70a62..7eec666 100644
--- a/src/cobalt/content/icu/icudt56b/nb.res
+++ b/src/cobalt/content/icu/icudt56b/nb.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/ne.res b/src/cobalt/content/icu/icudt56b/ne.res
index 0d3bca6..f4c368a 100644
--- a/src/cobalt/content/icu/icudt56b/ne.res
+++ b/src/cobalt/content/icu/icudt56b/ne.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/nl.res b/src/cobalt/content/icu/icudt56b/nl.res
index 15379de..ac4b49f 100644
--- a/src/cobalt/content/icu/icudt56b/nl.res
+++ b/src/cobalt/content/icu/icudt56b/nl.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/nn.res b/src/cobalt/content/icu/icudt56b/nn.res
index 93298fe..c26183a 100644
--- a/src/cobalt/content/icu/icudt56b/nn.res
+++ b/src/cobalt/content/icu/icudt56b/nn.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/no.res b/src/cobalt/content/icu/icudt56b/no.res
index 2daac08..b78bedc 100644
--- a/src/cobalt/content/icu/icudt56b/no.res
+++ b/src/cobalt/content/icu/icudt56b/no.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/nyn.res b/src/cobalt/content/icu/icudt56b/nyn.res
index 57679e5..9d2db5b 100644
--- a/src/cobalt/content/icu/icudt56b/nyn.res
+++ b/src/cobalt/content/icu/icudt56b/nyn.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/om.res b/src/cobalt/content/icu/icudt56b/om.res
index 57679e5..9d2db5b 100644
--- a/src/cobalt/content/icu/icudt56b/om.res
+++ b/src/cobalt/content/icu/icudt56b/om.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/or.res b/src/cobalt/content/icu/icudt56b/or.res
index 8d998f5..2b190ce 100644
--- a/src/cobalt/content/icu/icudt56b/or.res
+++ b/src/cobalt/content/icu/icudt56b/or.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/pa.res b/src/cobalt/content/icu/icudt56b/pa.res
index 274aa23..cb80517 100644
--- a/src/cobalt/content/icu/icudt56b/pa.res
+++ b/src/cobalt/content/icu/icudt56b/pa.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/pl.res b/src/cobalt/content/icu/icudt56b/pl.res
index 92e128d..f5a0776 100644
--- a/src/cobalt/content/icu/icudt56b/pl.res
+++ b/src/cobalt/content/icu/icudt56b/pl.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/pool.res b/src/cobalt/content/icu/icudt56b/pool.res
index cc6b653..91f6ad9 100644
--- a/src/cobalt/content/icu/icudt56b/pool.res
+++ b/src/cobalt/content/icu/icudt56b/pool.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/ps.res b/src/cobalt/content/icu/icudt56b/ps.res
index bb14e4e..1281bb4 100644
--- a/src/cobalt/content/icu/icudt56b/ps.res
+++ b/src/cobalt/content/icu/icudt56b/ps.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/pt.res b/src/cobalt/content/icu/icudt56b/pt.res
index a8cd770..cb7b5c1 100644
--- a/src/cobalt/content/icu/icudt56b/pt.res
+++ b/src/cobalt/content/icu/icudt56b/pt.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/pt_BR.res b/src/cobalt/content/icu/icudt56b/pt_BR.res
index 0c29168..7a2eb6d 100644
--- a/src/cobalt/content/icu/icudt56b/pt_BR.res
+++ b/src/cobalt/content/icu/icudt56b/pt_BR.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/pt_PT.res b/src/cobalt/content/icu/icudt56b/pt_PT.res
index 3eab096..dfc2456 100644
--- a/src/cobalt/content/icu/icudt56b/pt_PT.res
+++ b/src/cobalt/content/icu/icudt56b/pt_PT.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/region/en.res b/src/cobalt/content/icu/icudt56b/region/en.res
index 45c6423..c5c145b 100644
--- a/src/cobalt/content/icu/icudt56b/region/en.res
+++ b/src/cobalt/content/icu/icudt56b/region/en.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/region/pool.res b/src/cobalt/content/icu/icudt56b/region/pool.res
index 194ef79..d6bfffb 100644
--- a/src/cobalt/content/icu/icudt56b/region/pool.res
+++ b/src/cobalt/content/icu/icudt56b/region/pool.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/region/root.res b/src/cobalt/content/icu/icudt56b/region/root.res
index d61b851..0121ec9 100644
--- a/src/cobalt/content/icu/icudt56b/region/root.res
+++ b/src/cobalt/content/icu/icudt56b/region/root.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/rm.res b/src/cobalt/content/icu/icudt56b/rm.res
index 2ac0eb9..cfdff81 100644
--- a/src/cobalt/content/icu/icudt56b/rm.res
+++ b/src/cobalt/content/icu/icudt56b/rm.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/rn.res b/src/cobalt/content/icu/icudt56b/rn.res
index 57679e5..9d2db5b 100644
--- a/src/cobalt/content/icu/icudt56b/rn.res
+++ b/src/cobalt/content/icu/icudt56b/rn.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/ro.res b/src/cobalt/content/icu/icudt56b/ro.res
index 4658315..87ddc8d 100644
--- a/src/cobalt/content/icu/icudt56b/ro.res
+++ b/src/cobalt/content/icu/icudt56b/ro.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/ro_MD.res b/src/cobalt/content/icu/icudt56b/ro_MD.res
index 7c08d1e..67a02a2 100644
--- a/src/cobalt/content/icu/icudt56b/ro_MD.res
+++ b/src/cobalt/content/icu/icudt56b/ro_MD.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/root.res b/src/cobalt/content/icu/icudt56b/root.res
index 27050be..4fce667 100644
--- a/src/cobalt/content/icu/icudt56b/root.res
+++ b/src/cobalt/content/icu/icudt56b/root.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/ru.res b/src/cobalt/content/icu/icudt56b/ru.res
index 1d470e3..e6c012c 100644
--- a/src/cobalt/content/icu/icudt56b/ru.res
+++ b/src/cobalt/content/icu/icudt56b/ru.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/rw.res b/src/cobalt/content/icu/icudt56b/rw.res
index 57679e5..9d2db5b 100644
--- a/src/cobalt/content/icu/icudt56b/rw.res
+++ b/src/cobalt/content/icu/icudt56b/rw.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/sh.res b/src/cobalt/content/icu/icudt56b/sh.res
index 2a2fa54..6458c97 100644
--- a/src/cobalt/content/icu/icudt56b/sh.res
+++ b/src/cobalt/content/icu/icudt56b/sh.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/si.res b/src/cobalt/content/icu/icudt56b/si.res
index 6be2069..1f0112e 100644
--- a/src/cobalt/content/icu/icudt56b/si.res
+++ b/src/cobalt/content/icu/icudt56b/si.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/sk.res b/src/cobalt/content/icu/icudt56b/sk.res
index 4e9233c..e48c0fc 100644
--- a/src/cobalt/content/icu/icudt56b/sk.res
+++ b/src/cobalt/content/icu/icudt56b/sk.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/sl.res b/src/cobalt/content/icu/icudt56b/sl.res
index 4d4af72..c2a1d58 100644
--- a/src/cobalt/content/icu/icudt56b/sl.res
+++ b/src/cobalt/content/icu/icudt56b/sl.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/sn.res b/src/cobalt/content/icu/icudt56b/sn.res
index cd8e90d..d2a0d61 100644
--- a/src/cobalt/content/icu/icudt56b/sn.res
+++ b/src/cobalt/content/icu/icudt56b/sn.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/so.res b/src/cobalt/content/icu/icudt56b/so.res
index 57679e5..9d2db5b 100644
--- a/src/cobalt/content/icu/icudt56b/so.res
+++ b/src/cobalt/content/icu/icudt56b/so.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/sq.res b/src/cobalt/content/icu/icudt56b/sq.res
index 6785b37..c91d21f 100644
--- a/src/cobalt/content/icu/icudt56b/sq.res
+++ b/src/cobalt/content/icu/icudt56b/sq.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/sr.res b/src/cobalt/content/icu/icudt56b/sr.res
index 0fffd77..f1f0d0e 100644
--- a/src/cobalt/content/icu/icudt56b/sr.res
+++ b/src/cobalt/content/icu/icudt56b/sr.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/sr_Latn.res b/src/cobalt/content/icu/icudt56b/sr_Latn.res
index d12c6fc..09e6464 100644
--- a/src/cobalt/content/icu/icudt56b/sr_Latn.res
+++ b/src/cobalt/content/icu/icudt56b/sr_Latn.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/sv.res b/src/cobalt/content/icu/icudt56b/sv.res
index bb2f295..9ebcee8 100644
--- a/src/cobalt/content/icu/icudt56b/sv.res
+++ b/src/cobalt/content/icu/icudt56b/sv.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/sw.res b/src/cobalt/content/icu/icudt56b/sw.res
index 06acb42..4f419de 100644
--- a/src/cobalt/content/icu/icudt56b/sw.res
+++ b/src/cobalt/content/icu/icudt56b/sw.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/ta.res b/src/cobalt/content/icu/icudt56b/ta.res
index 79165d4..f8c41f3 100644
--- a/src/cobalt/content/icu/icudt56b/ta.res
+++ b/src/cobalt/content/icu/icudt56b/ta.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/te.res b/src/cobalt/content/icu/icudt56b/te.res
index c636277..e9b4bd5 100644
--- a/src/cobalt/content/icu/icudt56b/te.res
+++ b/src/cobalt/content/icu/icudt56b/te.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/tg.res b/src/cobalt/content/icu/icudt56b/tg.res
index fb5ac7e..6587279 100644
--- a/src/cobalt/content/icu/icudt56b/tg.res
+++ b/src/cobalt/content/icu/icudt56b/tg.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/th.res b/src/cobalt/content/icu/icudt56b/th.res
index 0585745..21c5770 100644
--- a/src/cobalt/content/icu/icudt56b/th.res
+++ b/src/cobalt/content/icu/icudt56b/th.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/ti.res b/src/cobalt/content/icu/icudt56b/ti.res
index 88d1885..b1be538 100644
--- a/src/cobalt/content/icu/icudt56b/ti.res
+++ b/src/cobalt/content/icu/icudt56b/ti.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/tl.res b/src/cobalt/content/icu/icudt56b/tl.res
index 181b960..2a31e1a 100644
--- a/src/cobalt/content/icu/icudt56b/tl.res
+++ b/src/cobalt/content/icu/icudt56b/tl.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/to.res b/src/cobalt/content/icu/icudt56b/to.res
index 1d1a083..59f438b 100644
--- a/src/cobalt/content/icu/icudt56b/to.res
+++ b/src/cobalt/content/icu/icudt56b/to.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/tr.res b/src/cobalt/content/icu/icudt56b/tr.res
index 278e42d..4a6298f 100644
--- a/src/cobalt/content/icu/icudt56b/tr.res
+++ b/src/cobalt/content/icu/icudt56b/tr.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/translit/root.res b/src/cobalt/content/icu/icudt56b/translit/root.res
index 4c17313..66fc787 100644
--- a/src/cobalt/content/icu/icudt56b/translit/root.res
+++ b/src/cobalt/content/icu/icudt56b/translit/root.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/uk.res b/src/cobalt/content/icu/icudt56b/uk.res
index 200454c..fb8f492 100644
--- a/src/cobalt/content/icu/icudt56b/uk.res
+++ b/src/cobalt/content/icu/icudt56b/uk.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/unit/am.res b/src/cobalt/content/icu/icudt56b/unit/am.res
index 292e986..a35df3b 100644
--- a/src/cobalt/content/icu/icudt56b/unit/am.res
+++ b/src/cobalt/content/icu/icudt56b/unit/am.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/unit/ar.res b/src/cobalt/content/icu/icudt56b/unit/ar.res
index f98995f..bebd1a9 100644
--- a/src/cobalt/content/icu/icudt56b/unit/ar.res
+++ b/src/cobalt/content/icu/icudt56b/unit/ar.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/unit/bg.res b/src/cobalt/content/icu/icudt56b/unit/bg.res
index 1aca03a..602c66a 100644
--- a/src/cobalt/content/icu/icudt56b/unit/bg.res
+++ b/src/cobalt/content/icu/icudt56b/unit/bg.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/unit/bn.res b/src/cobalt/content/icu/icudt56b/unit/bn.res
index 7f04950..1f919d9 100644
--- a/src/cobalt/content/icu/icudt56b/unit/bn.res
+++ b/src/cobalt/content/icu/icudt56b/unit/bn.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/unit/ca.res b/src/cobalt/content/icu/icudt56b/unit/ca.res
index 5f9e7d4..5845e5a 100644
--- a/src/cobalt/content/icu/icudt56b/unit/ca.res
+++ b/src/cobalt/content/icu/icudt56b/unit/ca.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/unit/cs.res b/src/cobalt/content/icu/icudt56b/unit/cs.res
index 36876e6..e2d5bac 100644
--- a/src/cobalt/content/icu/icudt56b/unit/cs.res
+++ b/src/cobalt/content/icu/icudt56b/unit/cs.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/unit/da.res b/src/cobalt/content/icu/icudt56b/unit/da.res
index d9e774a..b0cb39c 100644
--- a/src/cobalt/content/icu/icudt56b/unit/da.res
+++ b/src/cobalt/content/icu/icudt56b/unit/da.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/unit/de.res b/src/cobalt/content/icu/icudt56b/unit/de.res
index 28220da..c73d64f 100644
--- a/src/cobalt/content/icu/icudt56b/unit/de.res
+++ b/src/cobalt/content/icu/icudt56b/unit/de.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/unit/de_CH.res b/src/cobalt/content/icu/icudt56b/unit/de_CH.res
index 65ad3f2..00504ca 100644
--- a/src/cobalt/content/icu/icudt56b/unit/de_CH.res
+++ b/src/cobalt/content/icu/icudt56b/unit/de_CH.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/unit/el.res b/src/cobalt/content/icu/icudt56b/unit/el.res
index 2e844d8..a1382e5 100644
--- a/src/cobalt/content/icu/icudt56b/unit/el.res
+++ b/src/cobalt/content/icu/icudt56b/unit/el.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/unit/en.res b/src/cobalt/content/icu/icudt56b/unit/en.res
index 3aae76a..01b89ae 100644
--- a/src/cobalt/content/icu/icudt56b/unit/en.res
+++ b/src/cobalt/content/icu/icudt56b/unit/en.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/unit/en_001.res b/src/cobalt/content/icu/icudt56b/unit/en_001.res
index 47d0e3b..a38707e 100644
--- a/src/cobalt/content/icu/icudt56b/unit/en_001.res
+++ b/src/cobalt/content/icu/icudt56b/unit/en_001.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/unit/en_150.res b/src/cobalt/content/icu/icudt56b/unit/en_150.res
index 56c4fc5..7df0c61 100644
--- a/src/cobalt/content/icu/icudt56b/unit/en_150.res
+++ b/src/cobalt/content/icu/icudt56b/unit/en_150.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/unit/en_AU.res b/src/cobalt/content/icu/icudt56b/unit/en_AU.res
index e299a73..2ac5f74 100644
--- a/src/cobalt/content/icu/icudt56b/unit/en_AU.res
+++ b/src/cobalt/content/icu/icudt56b/unit/en_AU.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/unit/en_CA.res b/src/cobalt/content/icu/icudt56b/unit/en_CA.res
index 2312cfa..23a8c4d 100644
--- a/src/cobalt/content/icu/icudt56b/unit/en_CA.res
+++ b/src/cobalt/content/icu/icudt56b/unit/en_CA.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/unit/en_GB.res b/src/cobalt/content/icu/icudt56b/unit/en_GB.res
index 12c6ad4..f4e4529 100644
--- a/src/cobalt/content/icu/icudt56b/unit/en_GB.res
+++ b/src/cobalt/content/icu/icudt56b/unit/en_GB.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/unit/en_IN.res b/src/cobalt/content/icu/icudt56b/unit/en_IN.res
index 635ae39..24311e6 100644
--- a/src/cobalt/content/icu/icudt56b/unit/en_IN.res
+++ b/src/cobalt/content/icu/icudt56b/unit/en_IN.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/unit/en_NZ.res b/src/cobalt/content/icu/icudt56b/unit/en_NZ.res
index 635ae39..24311e6 100644
--- a/src/cobalt/content/icu/icudt56b/unit/en_NZ.res
+++ b/src/cobalt/content/icu/icudt56b/unit/en_NZ.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/unit/en_ZA.res b/src/cobalt/content/icu/icudt56b/unit/en_ZA.res
index 635ae39..24311e6 100644
--- a/src/cobalt/content/icu/icudt56b/unit/en_ZA.res
+++ b/src/cobalt/content/icu/icudt56b/unit/en_ZA.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/unit/es.res b/src/cobalt/content/icu/icudt56b/unit/es.res
index ffe1f08..38489a7 100644
--- a/src/cobalt/content/icu/icudt56b/unit/es.res
+++ b/src/cobalt/content/icu/icudt56b/unit/es.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/unit/es_419.res b/src/cobalt/content/icu/icudt56b/unit/es_419.res
index 472b17a..7dd5938 100644
--- a/src/cobalt/content/icu/icudt56b/unit/es_419.res
+++ b/src/cobalt/content/icu/icudt56b/unit/es_419.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/unit/es_AR.res b/src/cobalt/content/icu/icudt56b/unit/es_AR.res
index 2321a20..45044ae 100644
--- a/src/cobalt/content/icu/icudt56b/unit/es_AR.res
+++ b/src/cobalt/content/icu/icudt56b/unit/es_AR.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/unit/es_MX.res b/src/cobalt/content/icu/icudt56b/unit/es_MX.res
index 1063a34..e52962f 100644
--- a/src/cobalt/content/icu/icudt56b/unit/es_MX.res
+++ b/src/cobalt/content/icu/icudt56b/unit/es_MX.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/unit/es_US.res b/src/cobalt/content/icu/icudt56b/unit/es_US.res
index 4d5b4c7..00f7bc4 100644
--- a/src/cobalt/content/icu/icudt56b/unit/es_US.res
+++ b/src/cobalt/content/icu/icudt56b/unit/es_US.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/unit/et.res b/src/cobalt/content/icu/icudt56b/unit/et.res
index 4c4e707..07fc2e8 100644
--- a/src/cobalt/content/icu/icudt56b/unit/et.res
+++ b/src/cobalt/content/icu/icudt56b/unit/et.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/unit/fa.res b/src/cobalt/content/icu/icudt56b/unit/fa.res
index 7c9d93f..fbf7d22 100644
--- a/src/cobalt/content/icu/icudt56b/unit/fa.res
+++ b/src/cobalt/content/icu/icudt56b/unit/fa.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/unit/fi.res b/src/cobalt/content/icu/icudt56b/unit/fi.res
index a6f4ffd..dd44aa6 100644
--- a/src/cobalt/content/icu/icudt56b/unit/fi.res
+++ b/src/cobalt/content/icu/icudt56b/unit/fi.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/unit/fil.res b/src/cobalt/content/icu/icudt56b/unit/fil.res
index d37e0c9..592bf13 100644
--- a/src/cobalt/content/icu/icudt56b/unit/fil.res
+++ b/src/cobalt/content/icu/icudt56b/unit/fil.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/unit/fr.res b/src/cobalt/content/icu/icudt56b/unit/fr.res
index ecd764f..0c34090 100644
--- a/src/cobalt/content/icu/icudt56b/unit/fr.res
+++ b/src/cobalt/content/icu/icudt56b/unit/fr.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/unit/fr_CA.res b/src/cobalt/content/icu/icudt56b/unit/fr_CA.res
index 6898c10..6d6aaba 100644
--- a/src/cobalt/content/icu/icudt56b/unit/fr_CA.res
+++ b/src/cobalt/content/icu/icudt56b/unit/fr_CA.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/unit/gu.res b/src/cobalt/content/icu/icudt56b/unit/gu.res
index 7ee2a4f..938e994 100644
--- a/src/cobalt/content/icu/icudt56b/unit/gu.res
+++ b/src/cobalt/content/icu/icudt56b/unit/gu.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/unit/he.res b/src/cobalt/content/icu/icudt56b/unit/he.res
index ed32c30..b3f6b97 100644
--- a/src/cobalt/content/icu/icudt56b/unit/he.res
+++ b/src/cobalt/content/icu/icudt56b/unit/he.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/unit/hi.res b/src/cobalt/content/icu/icudt56b/unit/hi.res
index 61a2fc7..7e48b52 100644
--- a/src/cobalt/content/icu/icudt56b/unit/hi.res
+++ b/src/cobalt/content/icu/icudt56b/unit/hi.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/unit/hr.res b/src/cobalt/content/icu/icudt56b/unit/hr.res
index 6d4ddca..9297739 100644
--- a/src/cobalt/content/icu/icudt56b/unit/hr.res
+++ b/src/cobalt/content/icu/icudt56b/unit/hr.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/unit/hu.res b/src/cobalt/content/icu/icudt56b/unit/hu.res
index eb21500..b790aed 100644
--- a/src/cobalt/content/icu/icudt56b/unit/hu.res
+++ b/src/cobalt/content/icu/icudt56b/unit/hu.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/unit/id.res b/src/cobalt/content/icu/icudt56b/unit/id.res
index e0f4875..0ecd0cd 100644
--- a/src/cobalt/content/icu/icudt56b/unit/id.res
+++ b/src/cobalt/content/icu/icudt56b/unit/id.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/unit/in.res b/src/cobalt/content/icu/icudt56b/unit/in.res
index 073173b..01466da 100644
--- a/src/cobalt/content/icu/icudt56b/unit/in.res
+++ b/src/cobalt/content/icu/icudt56b/unit/in.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/unit/it.res b/src/cobalt/content/icu/icudt56b/unit/it.res
index 116fa09..f2108bc 100644
--- a/src/cobalt/content/icu/icudt56b/unit/it.res
+++ b/src/cobalt/content/icu/icudt56b/unit/it.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/unit/iw.res b/src/cobalt/content/icu/icudt56b/unit/iw.res
index 05e68f4..abb599a 100644
--- a/src/cobalt/content/icu/icudt56b/unit/iw.res
+++ b/src/cobalt/content/icu/icudt56b/unit/iw.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/unit/ja.res b/src/cobalt/content/icu/icudt56b/unit/ja.res
index 2c04119..9156dab 100644
--- a/src/cobalt/content/icu/icudt56b/unit/ja.res
+++ b/src/cobalt/content/icu/icudt56b/unit/ja.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/unit/kn.res b/src/cobalt/content/icu/icudt56b/unit/kn.res
index 4fc040c..540568c 100644
--- a/src/cobalt/content/icu/icudt56b/unit/kn.res
+++ b/src/cobalt/content/icu/icudt56b/unit/kn.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/unit/ko.res b/src/cobalt/content/icu/icudt56b/unit/ko.res
index 4457504..9d6aaaa 100644
--- a/src/cobalt/content/icu/icudt56b/unit/ko.res
+++ b/src/cobalt/content/icu/icudt56b/unit/ko.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/unit/lt.res b/src/cobalt/content/icu/icudt56b/unit/lt.res
index f55c0f3..e18752d 100644
--- a/src/cobalt/content/icu/icudt56b/unit/lt.res
+++ b/src/cobalt/content/icu/icudt56b/unit/lt.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/unit/lv.res b/src/cobalt/content/icu/icudt56b/unit/lv.res
index f151d02..04b478e 100644
--- a/src/cobalt/content/icu/icudt56b/unit/lv.res
+++ b/src/cobalt/content/icu/icudt56b/unit/lv.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/unit/ml.res b/src/cobalt/content/icu/icudt56b/unit/ml.res
index d4eb433..94fa297 100644
--- a/src/cobalt/content/icu/icudt56b/unit/ml.res
+++ b/src/cobalt/content/icu/icudt56b/unit/ml.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/unit/mr.res b/src/cobalt/content/icu/icudt56b/unit/mr.res
index 16a7673..357e525 100644
--- a/src/cobalt/content/icu/icudt56b/unit/mr.res
+++ b/src/cobalt/content/icu/icudt56b/unit/mr.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/unit/ms.res b/src/cobalt/content/icu/icudt56b/unit/ms.res
index 7d2e715..a6fc007 100644
--- a/src/cobalt/content/icu/icudt56b/unit/ms.res
+++ b/src/cobalt/content/icu/icudt56b/unit/ms.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/unit/nb.res b/src/cobalt/content/icu/icudt56b/unit/nb.res
index 455bf04..010b278 100644
--- a/src/cobalt/content/icu/icudt56b/unit/nb.res
+++ b/src/cobalt/content/icu/icudt56b/unit/nb.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/unit/nl.res b/src/cobalt/content/icu/icudt56b/unit/nl.res
index fa5887b..dc27465 100644
--- a/src/cobalt/content/icu/icudt56b/unit/nl.res
+++ b/src/cobalt/content/icu/icudt56b/unit/nl.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/unit/no.res b/src/cobalt/content/icu/icudt56b/unit/no.res
index b73c692..3d8e984 100644
--- a/src/cobalt/content/icu/icudt56b/unit/no.res
+++ b/src/cobalt/content/icu/icudt56b/unit/no.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/unit/pl.res b/src/cobalt/content/icu/icudt56b/unit/pl.res
index b0a8755..2e25fac 100644
--- a/src/cobalt/content/icu/icudt56b/unit/pl.res
+++ b/src/cobalt/content/icu/icudt56b/unit/pl.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/unit/pool.res b/src/cobalt/content/icu/icudt56b/unit/pool.res
index f11a0e0..c65cd54 100644
--- a/src/cobalt/content/icu/icudt56b/unit/pool.res
+++ b/src/cobalt/content/icu/icudt56b/unit/pool.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/unit/pt.res b/src/cobalt/content/icu/icudt56b/unit/pt.res
index d125bac..73168a1 100644
--- a/src/cobalt/content/icu/icudt56b/unit/pt.res
+++ b/src/cobalt/content/icu/icudt56b/unit/pt.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/unit/pt_PT.res b/src/cobalt/content/icu/icudt56b/unit/pt_PT.res
index 88c2270..276dd06 100644
--- a/src/cobalt/content/icu/icudt56b/unit/pt_PT.res
+++ b/src/cobalt/content/icu/icudt56b/unit/pt_PT.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/unit/ro.res b/src/cobalt/content/icu/icudt56b/unit/ro.res
index c83ed06..2a06311 100644
--- a/src/cobalt/content/icu/icudt56b/unit/ro.res
+++ b/src/cobalt/content/icu/icudt56b/unit/ro.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/unit/root.res b/src/cobalt/content/icu/icudt56b/unit/root.res
index a29b95d..615d7e5 100644
--- a/src/cobalt/content/icu/icudt56b/unit/root.res
+++ b/src/cobalt/content/icu/icudt56b/unit/root.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/unit/ru.res b/src/cobalt/content/icu/icudt56b/unit/ru.res
index 7725656..fbece9b 100644
--- a/src/cobalt/content/icu/icudt56b/unit/ru.res
+++ b/src/cobalt/content/icu/icudt56b/unit/ru.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/unit/sh.res b/src/cobalt/content/icu/icudt56b/unit/sh.res
index d473968..96c0714 100644
--- a/src/cobalt/content/icu/icudt56b/unit/sh.res
+++ b/src/cobalt/content/icu/icudt56b/unit/sh.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/unit/sk.res b/src/cobalt/content/icu/icudt56b/unit/sk.res
index c810d56..f3b61f8 100644
--- a/src/cobalt/content/icu/icudt56b/unit/sk.res
+++ b/src/cobalt/content/icu/icudt56b/unit/sk.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/unit/sl.res b/src/cobalt/content/icu/icudt56b/unit/sl.res
index da21626..0d6f0f0 100644
--- a/src/cobalt/content/icu/icudt56b/unit/sl.res
+++ b/src/cobalt/content/icu/icudt56b/unit/sl.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/unit/sr.res b/src/cobalt/content/icu/icudt56b/unit/sr.res
index 99cb318..f0053ba 100644
--- a/src/cobalt/content/icu/icudt56b/unit/sr.res
+++ b/src/cobalt/content/icu/icudt56b/unit/sr.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/unit/sr_Latn.res b/src/cobalt/content/icu/icudt56b/unit/sr_Latn.res
index e14deae..6dfbf33 100644
--- a/src/cobalt/content/icu/icudt56b/unit/sr_Latn.res
+++ b/src/cobalt/content/icu/icudt56b/unit/sr_Latn.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/unit/sv.res b/src/cobalt/content/icu/icudt56b/unit/sv.res
index 5e08842..33a4ca0 100644
--- a/src/cobalt/content/icu/icudt56b/unit/sv.res
+++ b/src/cobalt/content/icu/icudt56b/unit/sv.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/unit/sw.res b/src/cobalt/content/icu/icudt56b/unit/sw.res
index 0b20c40..fa27a7e 100644
--- a/src/cobalt/content/icu/icudt56b/unit/sw.res
+++ b/src/cobalt/content/icu/icudt56b/unit/sw.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/unit/ta.res b/src/cobalt/content/icu/icudt56b/unit/ta.res
index dd9f4ab..13041a5 100644
--- a/src/cobalt/content/icu/icudt56b/unit/ta.res
+++ b/src/cobalt/content/icu/icudt56b/unit/ta.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/unit/te.res b/src/cobalt/content/icu/icudt56b/unit/te.res
index 3082396..18e64af 100644
--- a/src/cobalt/content/icu/icudt56b/unit/te.res
+++ b/src/cobalt/content/icu/icudt56b/unit/te.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/unit/th.res b/src/cobalt/content/icu/icudt56b/unit/th.res
index 9971f89..76ea951 100644
--- a/src/cobalt/content/icu/icudt56b/unit/th.res
+++ b/src/cobalt/content/icu/icudt56b/unit/th.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/unit/tl.res b/src/cobalt/content/icu/icudt56b/unit/tl.res
index c1010d7..60f64fd 100644
--- a/src/cobalt/content/icu/icudt56b/unit/tl.res
+++ b/src/cobalt/content/icu/icudt56b/unit/tl.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/unit/tr.res b/src/cobalt/content/icu/icudt56b/unit/tr.res
index ca7aadd..73eb0fc 100644
--- a/src/cobalt/content/icu/icudt56b/unit/tr.res
+++ b/src/cobalt/content/icu/icudt56b/unit/tr.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/unit/uk.res b/src/cobalt/content/icu/icudt56b/unit/uk.res
index 58ff16c..3077a54 100644
--- a/src/cobalt/content/icu/icudt56b/unit/uk.res
+++ b/src/cobalt/content/icu/icudt56b/unit/uk.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/unit/vi.res b/src/cobalt/content/icu/icudt56b/unit/vi.res
index f19d427..856d66a 100644
--- a/src/cobalt/content/icu/icudt56b/unit/vi.res
+++ b/src/cobalt/content/icu/icudt56b/unit/vi.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/unit/zh.res b/src/cobalt/content/icu/icudt56b/unit/zh.res
index d5f901c..6daa4c1 100644
--- a/src/cobalt/content/icu/icudt56b/unit/zh.res
+++ b/src/cobalt/content/icu/icudt56b/unit/zh.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/unit/zh_CN.res b/src/cobalt/content/icu/icudt56b/unit/zh_CN.res
index 8f439af..45cf266 100644
--- a/src/cobalt/content/icu/icudt56b/unit/zh_CN.res
+++ b/src/cobalt/content/icu/icudt56b/unit/zh_CN.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/unit/zh_HK.res b/src/cobalt/content/icu/icudt56b/unit/zh_HK.res
index a07da20..4d0916c 100644
--- a/src/cobalt/content/icu/icudt56b/unit/zh_HK.res
+++ b/src/cobalt/content/icu/icudt56b/unit/zh_HK.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/unit/zh_Hans.res b/src/cobalt/content/icu/icudt56b/unit/zh_Hans.res
index 66c86b9..85fc330 100644
--- a/src/cobalt/content/icu/icudt56b/unit/zh_Hans.res
+++ b/src/cobalt/content/icu/icudt56b/unit/zh_Hans.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/unit/zh_Hans_CN.res b/src/cobalt/content/icu/icudt56b/unit/zh_Hans_CN.res
index 1786abd..bdef4bf 100644
--- a/src/cobalt/content/icu/icudt56b/unit/zh_Hans_CN.res
+++ b/src/cobalt/content/icu/icudt56b/unit/zh_Hans_CN.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/unit/zh_Hans_SG.res b/src/cobalt/content/icu/icudt56b/unit/zh_Hans_SG.res
index ca6dcb9..78d7de5 100644
--- a/src/cobalt/content/icu/icudt56b/unit/zh_Hans_SG.res
+++ b/src/cobalt/content/icu/icudt56b/unit/zh_Hans_SG.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/unit/zh_Hant.res b/src/cobalt/content/icu/icudt56b/unit/zh_Hant.res
index d9e19d1..f8405e6 100644
--- a/src/cobalt/content/icu/icudt56b/unit/zh_Hant.res
+++ b/src/cobalt/content/icu/icudt56b/unit/zh_Hant.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/unit/zh_Hant_HK.res b/src/cobalt/content/icu/icudt56b/unit/zh_Hant_HK.res
index 725f53d..9b1162d 100644
--- a/src/cobalt/content/icu/icudt56b/unit/zh_Hant_HK.res
+++ b/src/cobalt/content/icu/icudt56b/unit/zh_Hant_HK.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/unit/zh_Hant_TW.res b/src/cobalt/content/icu/icudt56b/unit/zh_Hant_TW.res
index 1786abd..bdef4bf 100644
--- a/src/cobalt/content/icu/icudt56b/unit/zh_Hant_TW.res
+++ b/src/cobalt/content/icu/icudt56b/unit/zh_Hant_TW.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/unit/zh_SG.res b/src/cobalt/content/icu/icudt56b/unit/zh_SG.res
index e87b215..3cd5b1b 100644
--- a/src/cobalt/content/icu/icudt56b/unit/zh_SG.res
+++ b/src/cobalt/content/icu/icudt56b/unit/zh_SG.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/unit/zh_TW.res b/src/cobalt/content/icu/icudt56b/unit/zh_TW.res
index 1c39fca..1aac47e 100644
--- a/src/cobalt/content/icu/icudt56b/unit/zh_TW.res
+++ b/src/cobalt/content/icu/icudt56b/unit/zh_TW.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/ur.res b/src/cobalt/content/icu/icudt56b/ur.res
index b89e41a..dee9ed1 100644
--- a/src/cobalt/content/icu/icudt56b/ur.res
+++ b/src/cobalt/content/icu/icudt56b/ur.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/uz.res b/src/cobalt/content/icu/icudt56b/uz.res
index 95f2baa..25206c7 100644
--- a/src/cobalt/content/icu/icudt56b/uz.res
+++ b/src/cobalt/content/icu/icudt56b/uz.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/vi.res b/src/cobalt/content/icu/icudt56b/vi.res
index 28dd7cc..0f73fb7 100644
--- a/src/cobalt/content/icu/icudt56b/vi.res
+++ b/src/cobalt/content/icu/icudt56b/vi.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/wa.res b/src/cobalt/content/icu/icudt56b/wa.res
index 35aa148..e9311b4 100644
--- a/src/cobalt/content/icu/icudt56b/wa.res
+++ b/src/cobalt/content/icu/icudt56b/wa.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/yo.res b/src/cobalt/content/icu/icudt56b/yo.res
index 622dd60..070063d 100644
--- a/src/cobalt/content/icu/icudt56b/yo.res
+++ b/src/cobalt/content/icu/icudt56b/yo.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/zh.res b/src/cobalt/content/icu/icudt56b/zh.res
index 3f8f599..7d2ecf2 100644
--- a/src/cobalt/content/icu/icudt56b/zh.res
+++ b/src/cobalt/content/icu/icudt56b/zh.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/zh_CN.res b/src/cobalt/content/icu/icudt56b/zh_CN.res
index d366b9e..1b8f7db 100644
--- a/src/cobalt/content/icu/icudt56b/zh_CN.res
+++ b/src/cobalt/content/icu/icudt56b/zh_CN.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/zh_HK.res b/src/cobalt/content/icu/icudt56b/zh_HK.res
index 7432644..9e8894a 100644
--- a/src/cobalt/content/icu/icudt56b/zh_HK.res
+++ b/src/cobalt/content/icu/icudt56b/zh_HK.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/zh_Hans.res b/src/cobalt/content/icu/icudt56b/zh_Hans.res
index 0c29168..7a2eb6d 100644
--- a/src/cobalt/content/icu/icudt56b/zh_Hans.res
+++ b/src/cobalt/content/icu/icudt56b/zh_Hans.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/zh_Hans_CN.res b/src/cobalt/content/icu/icudt56b/zh_Hans_CN.res
index 0c29168..7a2eb6d 100644
--- a/src/cobalt/content/icu/icudt56b/zh_Hans_CN.res
+++ b/src/cobalt/content/icu/icudt56b/zh_Hans_CN.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/zh_Hans_SG.res b/src/cobalt/content/icu/icudt56b/zh_Hans_SG.res
index 2d2d350..6e1a433 100644
--- a/src/cobalt/content/icu/icudt56b/zh_Hans_SG.res
+++ b/src/cobalt/content/icu/icudt56b/zh_Hans_SG.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/zh_Hant.res b/src/cobalt/content/icu/icudt56b/zh_Hant.res
index 7d655fa..0bfaa77 100644
--- a/src/cobalt/content/icu/icudt56b/zh_Hant.res
+++ b/src/cobalt/content/icu/icudt56b/zh_Hant.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/zh_Hant_HK.res b/src/cobalt/content/icu/icudt56b/zh_Hant_HK.res
index f4f8ce4..a0b017d 100644
--- a/src/cobalt/content/icu/icudt56b/zh_Hant_HK.res
+++ b/src/cobalt/content/icu/icudt56b/zh_Hant_HK.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/zh_Hant_TW.res b/src/cobalt/content/icu/icudt56b/zh_Hant_TW.res
index 0c29168..7a2eb6d 100644
--- a/src/cobalt/content/icu/icudt56b/zh_Hant_TW.res
+++ b/src/cobalt/content/icu/icudt56b/zh_Hant_TW.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/zh_SG.res b/src/cobalt/content/icu/icudt56b/zh_SG.res
index 720eed1..a0b68a9 100644
--- a/src/cobalt/content/icu/icudt56b/zh_SG.res
+++ b/src/cobalt/content/icu/icudt56b/zh_SG.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/zh_TW.res b/src/cobalt/content/icu/icudt56b/zh_TW.res
index f7a32b9..0dff169 100644
--- a/src/cobalt/content/icu/icudt56b/zh_TW.res
+++ b/src/cobalt/content/icu/icudt56b/zh_TW.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/zone/am.res b/src/cobalt/content/icu/icudt56b/zone/am.res
index ecdf5a6..8d19975 100644
--- a/src/cobalt/content/icu/icudt56b/zone/am.res
+++ b/src/cobalt/content/icu/icudt56b/zone/am.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/zone/ar.res b/src/cobalt/content/icu/icudt56b/zone/ar.res
index 90bf7d1..d71faf3 100644
--- a/src/cobalt/content/icu/icudt56b/zone/ar.res
+++ b/src/cobalt/content/icu/icudt56b/zone/ar.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/zone/bg.res b/src/cobalt/content/icu/icudt56b/zone/bg.res
index 1e3b8b7..226554b 100644
--- a/src/cobalt/content/icu/icudt56b/zone/bg.res
+++ b/src/cobalt/content/icu/icudt56b/zone/bg.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/zone/bn.res b/src/cobalt/content/icu/icudt56b/zone/bn.res
index 1bfd7d3..83c397b 100644
--- a/src/cobalt/content/icu/icudt56b/zone/bn.res
+++ b/src/cobalt/content/icu/icudt56b/zone/bn.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/zone/ca.res b/src/cobalt/content/icu/icudt56b/zone/ca.res
index 60a5a33..2fb72fb 100644
--- a/src/cobalt/content/icu/icudt56b/zone/ca.res
+++ b/src/cobalt/content/icu/icudt56b/zone/ca.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/zone/cs.res b/src/cobalt/content/icu/icudt56b/zone/cs.res
index bcd686e..905fdde 100644
--- a/src/cobalt/content/icu/icudt56b/zone/cs.res
+++ b/src/cobalt/content/icu/icudt56b/zone/cs.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/zone/da.res b/src/cobalt/content/icu/icudt56b/zone/da.res
index 47df657..9080b79 100644
--- a/src/cobalt/content/icu/icudt56b/zone/da.res
+++ b/src/cobalt/content/icu/icudt56b/zone/da.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/zone/de.res b/src/cobalt/content/icu/icudt56b/zone/de.res
index e9a0bcd..913e3f2 100644
--- a/src/cobalt/content/icu/icudt56b/zone/de.res
+++ b/src/cobalt/content/icu/icudt56b/zone/de.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/zone/el.res b/src/cobalt/content/icu/icudt56b/zone/el.res
index 16e754a..76d3839 100644
--- a/src/cobalt/content/icu/icudt56b/zone/el.res
+++ b/src/cobalt/content/icu/icudt56b/zone/el.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/zone/en.res b/src/cobalt/content/icu/icudt56b/zone/en.res
index 54e5bd2..c5af6cc 100644
--- a/src/cobalt/content/icu/icudt56b/zone/en.res
+++ b/src/cobalt/content/icu/icudt56b/zone/en.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/zone/en_001.res b/src/cobalt/content/icu/icudt56b/zone/en_001.res
index 8a5dc2f..d57ca5b 100644
--- a/src/cobalt/content/icu/icudt56b/zone/en_001.res
+++ b/src/cobalt/content/icu/icudt56b/zone/en_001.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/zone/en_150.res b/src/cobalt/content/icu/icudt56b/zone/en_150.res
index ddebb42..ba3ce45 100644
--- a/src/cobalt/content/icu/icudt56b/zone/en_150.res
+++ b/src/cobalt/content/icu/icudt56b/zone/en_150.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/zone/en_AU.res b/src/cobalt/content/icu/icudt56b/zone/en_AU.res
index a8735c5..23645e7 100644
--- a/src/cobalt/content/icu/icudt56b/zone/en_AU.res
+++ b/src/cobalt/content/icu/icudt56b/zone/en_AU.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/zone/en_CA.res b/src/cobalt/content/icu/icudt56b/zone/en_CA.res
index 4e338d4..1bac93c 100644
--- a/src/cobalt/content/icu/icudt56b/zone/en_CA.res
+++ b/src/cobalt/content/icu/icudt56b/zone/en_CA.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/zone/en_GB.res b/src/cobalt/content/icu/icudt56b/zone/en_GB.res
index 264b11d..2754391 100644
--- a/src/cobalt/content/icu/icudt56b/zone/en_GB.res
+++ b/src/cobalt/content/icu/icudt56b/zone/en_GB.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/zone/en_IN.res b/src/cobalt/content/icu/icudt56b/zone/en_IN.res
index 70a1809..05a0947 100644
--- a/src/cobalt/content/icu/icudt56b/zone/en_IN.res
+++ b/src/cobalt/content/icu/icudt56b/zone/en_IN.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/zone/en_NZ.res b/src/cobalt/content/icu/icudt56b/zone/en_NZ.res
index b1e0e1f..05cc670 100644
--- a/src/cobalt/content/icu/icudt56b/zone/en_NZ.res
+++ b/src/cobalt/content/icu/icudt56b/zone/en_NZ.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/zone/en_ZA.res b/src/cobalt/content/icu/icudt56b/zone/en_ZA.res
index 3b9c2d9..c2c2087 100644
--- a/src/cobalt/content/icu/icudt56b/zone/en_ZA.res
+++ b/src/cobalt/content/icu/icudt56b/zone/en_ZA.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/zone/es.res b/src/cobalt/content/icu/icudt56b/zone/es.res
index 0b7f828..21642cd 100644
--- a/src/cobalt/content/icu/icudt56b/zone/es.res
+++ b/src/cobalt/content/icu/icudt56b/zone/es.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/zone/es_419.res b/src/cobalt/content/icu/icudt56b/zone/es_419.res
index 6a92ba0..90121e1 100644
--- a/src/cobalt/content/icu/icudt56b/zone/es_419.res
+++ b/src/cobalt/content/icu/icudt56b/zone/es_419.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/zone/es_AR.res b/src/cobalt/content/icu/icudt56b/zone/es_AR.res
index 487b16f..b824e1a 100644
--- a/src/cobalt/content/icu/icudt56b/zone/es_AR.res
+++ b/src/cobalt/content/icu/icudt56b/zone/es_AR.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/zone/es_MX.res b/src/cobalt/content/icu/icudt56b/zone/es_MX.res
index 6fbc5cc..229f469 100644
--- a/src/cobalt/content/icu/icudt56b/zone/es_MX.res
+++ b/src/cobalt/content/icu/icudt56b/zone/es_MX.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/zone/es_US.res b/src/cobalt/content/icu/icudt56b/zone/es_US.res
index 6008b97..3e42ce2 100644
--- a/src/cobalt/content/icu/icudt56b/zone/es_US.res
+++ b/src/cobalt/content/icu/icudt56b/zone/es_US.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/zone/et.res b/src/cobalt/content/icu/icudt56b/zone/et.res
index 4e38bb0..6882e8c 100644
--- a/src/cobalt/content/icu/icudt56b/zone/et.res
+++ b/src/cobalt/content/icu/icudt56b/zone/et.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/zone/fa.res b/src/cobalt/content/icu/icudt56b/zone/fa.res
index d6d73bf..335ea68 100644
--- a/src/cobalt/content/icu/icudt56b/zone/fa.res
+++ b/src/cobalt/content/icu/icudt56b/zone/fa.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/zone/fi.res b/src/cobalt/content/icu/icudt56b/zone/fi.res
index e5e130f..652f440 100644
--- a/src/cobalt/content/icu/icudt56b/zone/fi.res
+++ b/src/cobalt/content/icu/icudt56b/zone/fi.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/zone/fil.res b/src/cobalt/content/icu/icudt56b/zone/fil.res
index 53bebf4..411f4c4 100644
--- a/src/cobalt/content/icu/icudt56b/zone/fil.res
+++ b/src/cobalt/content/icu/icudt56b/zone/fil.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/zone/fr.res b/src/cobalt/content/icu/icudt56b/zone/fr.res
index 8a69d68..5ffd2c7 100644
--- a/src/cobalt/content/icu/icudt56b/zone/fr.res
+++ b/src/cobalt/content/icu/icudt56b/zone/fr.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/zone/fr_CA.res b/src/cobalt/content/icu/icudt56b/zone/fr_CA.res
index fadc1ad..2a97cb4 100644
--- a/src/cobalt/content/icu/icudt56b/zone/fr_CA.res
+++ b/src/cobalt/content/icu/icudt56b/zone/fr_CA.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/zone/gu.res b/src/cobalt/content/icu/icudt56b/zone/gu.res
index a2e1968..6363c38 100644
--- a/src/cobalt/content/icu/icudt56b/zone/gu.res
+++ b/src/cobalt/content/icu/icudt56b/zone/gu.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/zone/he.res b/src/cobalt/content/icu/icudt56b/zone/he.res
index 5c0a02b..eb383e7 100644
--- a/src/cobalt/content/icu/icudt56b/zone/he.res
+++ b/src/cobalt/content/icu/icudt56b/zone/he.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/zone/hi.res b/src/cobalt/content/icu/icudt56b/zone/hi.res
index 6a382f2..d79080b 100644
--- a/src/cobalt/content/icu/icudt56b/zone/hi.res
+++ b/src/cobalt/content/icu/icudt56b/zone/hi.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/zone/hr.res b/src/cobalt/content/icu/icudt56b/zone/hr.res
index d6178cf..31121f4 100644
--- a/src/cobalt/content/icu/icudt56b/zone/hr.res
+++ b/src/cobalt/content/icu/icudt56b/zone/hr.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/zone/hu.res b/src/cobalt/content/icu/icudt56b/zone/hu.res
index 5e20524..d18a8e9 100644
--- a/src/cobalt/content/icu/icudt56b/zone/hu.res
+++ b/src/cobalt/content/icu/icudt56b/zone/hu.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/zone/id.res b/src/cobalt/content/icu/icudt56b/zone/id.res
index daea9ba..56dddb4 100644
--- a/src/cobalt/content/icu/icudt56b/zone/id.res
+++ b/src/cobalt/content/icu/icudt56b/zone/id.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/zone/in.res b/src/cobalt/content/icu/icudt56b/zone/in.res
index 688b635..b0f0504 100644
--- a/src/cobalt/content/icu/icudt56b/zone/in.res
+++ b/src/cobalt/content/icu/icudt56b/zone/in.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/zone/it.res b/src/cobalt/content/icu/icudt56b/zone/it.res
index 6a2499d..804ab13 100644
--- a/src/cobalt/content/icu/icudt56b/zone/it.res
+++ b/src/cobalt/content/icu/icudt56b/zone/it.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/zone/iw.res b/src/cobalt/content/icu/icudt56b/zone/iw.res
index 2302404..de6dc2a 100644
--- a/src/cobalt/content/icu/icudt56b/zone/iw.res
+++ b/src/cobalt/content/icu/icudt56b/zone/iw.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/zone/ja.res b/src/cobalt/content/icu/icudt56b/zone/ja.res
index 009c899..3ef3a97 100644
--- a/src/cobalt/content/icu/icudt56b/zone/ja.res
+++ b/src/cobalt/content/icu/icudt56b/zone/ja.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/zone/kn.res b/src/cobalt/content/icu/icudt56b/zone/kn.res
index 5ceecc8..78f7c1c 100644
--- a/src/cobalt/content/icu/icudt56b/zone/kn.res
+++ b/src/cobalt/content/icu/icudt56b/zone/kn.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/zone/ko.res b/src/cobalt/content/icu/icudt56b/zone/ko.res
index 9815828..92140a3 100644
--- a/src/cobalt/content/icu/icudt56b/zone/ko.res
+++ b/src/cobalt/content/icu/icudt56b/zone/ko.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/zone/lt.res b/src/cobalt/content/icu/icudt56b/zone/lt.res
index 59156b4..d35f2b8 100644
--- a/src/cobalt/content/icu/icudt56b/zone/lt.res
+++ b/src/cobalt/content/icu/icudt56b/zone/lt.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/zone/lv.res b/src/cobalt/content/icu/icudt56b/zone/lv.res
index bc23fa3..c80f5e8 100644
--- a/src/cobalt/content/icu/icudt56b/zone/lv.res
+++ b/src/cobalt/content/icu/icudt56b/zone/lv.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/zone/ml.res b/src/cobalt/content/icu/icudt56b/zone/ml.res
index 2b45bfc..5e1fa15 100644
--- a/src/cobalt/content/icu/icudt56b/zone/ml.res
+++ b/src/cobalt/content/icu/icudt56b/zone/ml.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/zone/mr.res b/src/cobalt/content/icu/icudt56b/zone/mr.res
index e15dff2..d01a7f4 100644
--- a/src/cobalt/content/icu/icudt56b/zone/mr.res
+++ b/src/cobalt/content/icu/icudt56b/zone/mr.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/zone/ms.res b/src/cobalt/content/icu/icudt56b/zone/ms.res
index 3d455e4..df8f19f 100644
--- a/src/cobalt/content/icu/icudt56b/zone/ms.res
+++ b/src/cobalt/content/icu/icudt56b/zone/ms.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/zone/nb.res b/src/cobalt/content/icu/icudt56b/zone/nb.res
index 89aeb11..ef6dfde 100644
--- a/src/cobalt/content/icu/icudt56b/zone/nb.res
+++ b/src/cobalt/content/icu/icudt56b/zone/nb.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/zone/nl.res b/src/cobalt/content/icu/icudt56b/zone/nl.res
index a331fb4..965756c 100644
--- a/src/cobalt/content/icu/icudt56b/zone/nl.res
+++ b/src/cobalt/content/icu/icudt56b/zone/nl.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/zone/no.res b/src/cobalt/content/icu/icudt56b/zone/no.res
index 1d2ff18..449c0c1 100644
--- a/src/cobalt/content/icu/icudt56b/zone/no.res
+++ b/src/cobalt/content/icu/icudt56b/zone/no.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/zone/pl.res b/src/cobalt/content/icu/icudt56b/zone/pl.res
index 10bc3fc..dea3693 100644
--- a/src/cobalt/content/icu/icudt56b/zone/pl.res
+++ b/src/cobalt/content/icu/icudt56b/zone/pl.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/zone/pool.res b/src/cobalt/content/icu/icudt56b/zone/pool.res
index 8738534..0e00d90 100644
--- a/src/cobalt/content/icu/icudt56b/zone/pool.res
+++ b/src/cobalt/content/icu/icudt56b/zone/pool.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/zone/pt.res b/src/cobalt/content/icu/icudt56b/zone/pt.res
index f443cd0..79dbf18 100644
--- a/src/cobalt/content/icu/icudt56b/zone/pt.res
+++ b/src/cobalt/content/icu/icudt56b/zone/pt.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/zone/pt_PT.res b/src/cobalt/content/icu/icudt56b/zone/pt_PT.res
index 83f2189..7d596ea 100644
--- a/src/cobalt/content/icu/icudt56b/zone/pt_PT.res
+++ b/src/cobalt/content/icu/icudt56b/zone/pt_PT.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/zone/ro.res b/src/cobalt/content/icu/icudt56b/zone/ro.res
index 8a56e8f..69a591e 100644
--- a/src/cobalt/content/icu/icudt56b/zone/ro.res
+++ b/src/cobalt/content/icu/icudt56b/zone/ro.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/zone/root.res b/src/cobalt/content/icu/icudt56b/zone/root.res
index 2f519c3..23983bb 100644
--- a/src/cobalt/content/icu/icudt56b/zone/root.res
+++ b/src/cobalt/content/icu/icudt56b/zone/root.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/zone/ru.res b/src/cobalt/content/icu/icudt56b/zone/ru.res
index e2c9787..2931c15 100644
--- a/src/cobalt/content/icu/icudt56b/zone/ru.res
+++ b/src/cobalt/content/icu/icudt56b/zone/ru.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/zone/sk.res b/src/cobalt/content/icu/icudt56b/zone/sk.res
index 26d150c..9efb8af 100644
--- a/src/cobalt/content/icu/icudt56b/zone/sk.res
+++ b/src/cobalt/content/icu/icudt56b/zone/sk.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/zone/sl.res b/src/cobalt/content/icu/icudt56b/zone/sl.res
index f808cf0..28abb1f 100644
--- a/src/cobalt/content/icu/icudt56b/zone/sl.res
+++ b/src/cobalt/content/icu/icudt56b/zone/sl.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/zone/sr.res b/src/cobalt/content/icu/icudt56b/zone/sr.res
index 6420fc2..d8a33b1 100644
--- a/src/cobalt/content/icu/icudt56b/zone/sr.res
+++ b/src/cobalt/content/icu/icudt56b/zone/sr.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/zone/sv.res b/src/cobalt/content/icu/icudt56b/zone/sv.res
index ba29b46..ad8ded4 100644
--- a/src/cobalt/content/icu/icudt56b/zone/sv.res
+++ b/src/cobalt/content/icu/icudt56b/zone/sv.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/zone/sw.res b/src/cobalt/content/icu/icudt56b/zone/sw.res
index b9dd514..b050d1b 100644
--- a/src/cobalt/content/icu/icudt56b/zone/sw.res
+++ b/src/cobalt/content/icu/icudt56b/zone/sw.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/zone/ta.res b/src/cobalt/content/icu/icudt56b/zone/ta.res
index a2133b6..78be1b5 100644
--- a/src/cobalt/content/icu/icudt56b/zone/ta.res
+++ b/src/cobalt/content/icu/icudt56b/zone/ta.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/zone/te.res b/src/cobalt/content/icu/icudt56b/zone/te.res
index e98f297..339dba7 100644
--- a/src/cobalt/content/icu/icudt56b/zone/te.res
+++ b/src/cobalt/content/icu/icudt56b/zone/te.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/zone/th.res b/src/cobalt/content/icu/icudt56b/zone/th.res
index 280414c..72fc122 100644
--- a/src/cobalt/content/icu/icudt56b/zone/th.res
+++ b/src/cobalt/content/icu/icudt56b/zone/th.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/zone/tr.res b/src/cobalt/content/icu/icudt56b/zone/tr.res
index 75e59ef..abc50c8 100644
--- a/src/cobalt/content/icu/icudt56b/zone/tr.res
+++ b/src/cobalt/content/icu/icudt56b/zone/tr.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/zone/tzdbNames.res b/src/cobalt/content/icu/icudt56b/zone/tzdbNames.res
index ec5b930..8b8fcad 100644
--- a/src/cobalt/content/icu/icudt56b/zone/tzdbNames.res
+++ b/src/cobalt/content/icu/icudt56b/zone/tzdbNames.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/zone/uk.res b/src/cobalt/content/icu/icudt56b/zone/uk.res
index a71b8e1..ce3f5b3 100644
--- a/src/cobalt/content/icu/icudt56b/zone/uk.res
+++ b/src/cobalt/content/icu/icudt56b/zone/uk.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/zone/vi.res b/src/cobalt/content/icu/icudt56b/zone/vi.res
index d22c37a..25807e2 100644
--- a/src/cobalt/content/icu/icudt56b/zone/vi.res
+++ b/src/cobalt/content/icu/icudt56b/zone/vi.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/zone/zh.res b/src/cobalt/content/icu/icudt56b/zone/zh.res
index a2553cb..7a99c76 100644
--- a/src/cobalt/content/icu/icudt56b/zone/zh.res
+++ b/src/cobalt/content/icu/icudt56b/zone/zh.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/zone/zh_CN.res b/src/cobalt/content/icu/icudt56b/zone/zh_CN.res
index 300fdf6..ec46635 100644
--- a/src/cobalt/content/icu/icudt56b/zone/zh_CN.res
+++ b/src/cobalt/content/icu/icudt56b/zone/zh_CN.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/zone/zh_HK.res b/src/cobalt/content/icu/icudt56b/zone/zh_HK.res
index 4016633..fe81e04 100644
--- a/src/cobalt/content/icu/icudt56b/zone/zh_HK.res
+++ b/src/cobalt/content/icu/icudt56b/zone/zh_HK.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/zone/zh_Hans.res b/src/cobalt/content/icu/icudt56b/zone/zh_Hans.res
index 587229d..b48bd9c 100644
--- a/src/cobalt/content/icu/icudt56b/zone/zh_Hans.res
+++ b/src/cobalt/content/icu/icudt56b/zone/zh_Hans.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/zone/zh_Hans_CN.res b/src/cobalt/content/icu/icudt56b/zone/zh_Hans_CN.res
index 2f1a4b5..3e5b7e0 100644
--- a/src/cobalt/content/icu/icudt56b/zone/zh_Hans_CN.res
+++ b/src/cobalt/content/icu/icudt56b/zone/zh_Hans_CN.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/zone/zh_Hans_SG.res b/src/cobalt/content/icu/icudt56b/zone/zh_Hans_SG.res
index 3b199b9..73b46ba 100644
--- a/src/cobalt/content/icu/icudt56b/zone/zh_Hans_SG.res
+++ b/src/cobalt/content/icu/icudt56b/zone/zh_Hans_SG.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/zone/zh_Hant.res b/src/cobalt/content/icu/icudt56b/zone/zh_Hant.res
index 2bb3aa3..80e2d84 100644
--- a/src/cobalt/content/icu/icudt56b/zone/zh_Hant.res
+++ b/src/cobalt/content/icu/icudt56b/zone/zh_Hant.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/zone/zh_Hant_HK.res b/src/cobalt/content/icu/icudt56b/zone/zh_Hant_HK.res
index 9bc0748..c32662a 100644
--- a/src/cobalt/content/icu/icudt56b/zone/zh_Hant_HK.res
+++ b/src/cobalt/content/icu/icudt56b/zone/zh_Hant_HK.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/zone/zh_Hant_TW.res b/src/cobalt/content/icu/icudt56b/zone/zh_Hant_TW.res
index 2f1a4b5..3e5b7e0 100644
--- a/src/cobalt/content/icu/icudt56b/zone/zh_Hant_TW.res
+++ b/src/cobalt/content/icu/icudt56b/zone/zh_Hant_TW.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/zone/zh_SG.res b/src/cobalt/content/icu/icudt56b/zone/zh_SG.res
index 3d32d68..9a6d40e 100644
--- a/src/cobalt/content/icu/icudt56b/zone/zh_SG.res
+++ b/src/cobalt/content/icu/icudt56b/zone/zh_SG.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/zone/zh_TW.res b/src/cobalt/content/icu/icudt56b/zone/zh_TW.res
index b7bc97e..403b5a8 100644
--- a/src/cobalt/content/icu/icudt56b/zone/zh_TW.res
+++ b/src/cobalt/content/icu/icudt56b/zone/zh_TW.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56b/zu.res b/src/cobalt/content/icu/icudt56b/zu.res
index ce67f86..15cdcff 100644
--- a/src/cobalt/content/icu/icudt56b/zu.res
+++ b/src/cobalt/content/icu/icudt56b/zu.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/af.res b/src/cobalt/content/icu/icudt56l/af.res
index c10dff1..7d0f080 100644
--- a/src/cobalt/content/icu/icudt56l/af.res
+++ b/src/cobalt/content/icu/icudt56l/af.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/ak.res b/src/cobalt/content/icu/icudt56l/ak.res
index 38c65e8..a2f7b87 100644
--- a/src/cobalt/content/icu/icudt56l/ak.res
+++ b/src/cobalt/content/icu/icudt56l/ak.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/am.res b/src/cobalt/content/icu/icudt56l/am.res
index 5057758..74dc8d2 100644
--- a/src/cobalt/content/icu/icudt56l/am.res
+++ b/src/cobalt/content/icu/icudt56l/am.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/an.res b/src/cobalt/content/icu/icudt56l/an.res
index d25cfda..6faff72 100644
--- a/src/cobalt/content/icu/icudt56l/an.res
+++ b/src/cobalt/content/icu/icudt56l/an.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/ar.res b/src/cobalt/content/icu/icudt56l/ar.res
index 9ef2045..474e792 100644
--- a/src/cobalt/content/icu/icudt56l/ar.res
+++ b/src/cobalt/content/icu/icudt56l/ar.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/ast.res b/src/cobalt/content/icu/icudt56l/ast.res
index ee47109..5812754 100644
--- a/src/cobalt/content/icu/icudt56l/ast.res
+++ b/src/cobalt/content/icu/icudt56l/ast.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/az.res b/src/cobalt/content/icu/icudt56l/az.res
index e1470c0..259dcba 100644
--- a/src/cobalt/content/icu/icudt56l/az.res
+++ b/src/cobalt/content/icu/icudt56l/az.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/be.res b/src/cobalt/content/icu/icudt56l/be.res
index b70175a..4f3efa9 100644
--- a/src/cobalt/content/icu/icudt56l/be.res
+++ b/src/cobalt/content/icu/icudt56l/be.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/bem.res b/src/cobalt/content/icu/icudt56l/bem.res
index db42942..f2c0f8a 100644
--- a/src/cobalt/content/icu/icudt56l/bem.res
+++ b/src/cobalt/content/icu/icudt56l/bem.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/bg.res b/src/cobalt/content/icu/icudt56l/bg.res
index 2a45166..460af4f 100644
--- a/src/cobalt/content/icu/icudt56l/bg.res
+++ b/src/cobalt/content/icu/icudt56l/bg.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/bn.res b/src/cobalt/content/icu/icudt56l/bn.res
index e1deb82..c1988d5 100644
--- a/src/cobalt/content/icu/icudt56l/bn.res
+++ b/src/cobalt/content/icu/icudt56l/bn.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/br.res b/src/cobalt/content/icu/icudt56l/br.res
index b3fd0fa..4928119 100644
--- a/src/cobalt/content/icu/icudt56l/br.res
+++ b/src/cobalt/content/icu/icudt56l/br.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/bs.res b/src/cobalt/content/icu/icudt56l/bs.res
index e7f1481..4cb47ea 100644
--- a/src/cobalt/content/icu/icudt56l/bs.res
+++ b/src/cobalt/content/icu/icudt56l/bs.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/ca.res b/src/cobalt/content/icu/icudt56l/ca.res
index 3ef57e3..2b42ab7 100644
--- a/src/cobalt/content/icu/icudt56l/ca.res
+++ b/src/cobalt/content/icu/icudt56l/ca.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/ckb.res b/src/cobalt/content/icu/icudt56l/ckb.res
index 3074461..190b2bd 100644
--- a/src/cobalt/content/icu/icudt56l/ckb.res
+++ b/src/cobalt/content/icu/icudt56l/ckb.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/coll/ar.res b/src/cobalt/content/icu/icudt56l/coll/ar.res
index e2f94ca..860e431 100644
--- a/src/cobalt/content/icu/icudt56l/coll/ar.res
+++ b/src/cobalt/content/icu/icudt56l/coll/ar.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/coll/bg.res b/src/cobalt/content/icu/icudt56l/coll/bg.res
index 671f9b1..610281e 100644
--- a/src/cobalt/content/icu/icudt56l/coll/bg.res
+++ b/src/cobalt/content/icu/icudt56l/coll/bg.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/coll/bn.res b/src/cobalt/content/icu/icudt56l/coll/bn.res
index c2d025b..1466600 100644
--- a/src/cobalt/content/icu/icudt56l/coll/bn.res
+++ b/src/cobalt/content/icu/icudt56l/coll/bn.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/coll/ca.res b/src/cobalt/content/icu/icudt56l/coll/ca.res
index 94e09da..8f9c047 100644
--- a/src/cobalt/content/icu/icudt56l/coll/ca.res
+++ b/src/cobalt/content/icu/icudt56l/coll/ca.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/coll/cs.res b/src/cobalt/content/icu/icudt56l/coll/cs.res
index af17fc9..6b71925 100644
--- a/src/cobalt/content/icu/icudt56l/coll/cs.res
+++ b/src/cobalt/content/icu/icudt56l/coll/cs.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/coll/da.res b/src/cobalt/content/icu/icudt56l/coll/da.res
index eec8a2f..6b71925 100644
--- a/src/cobalt/content/icu/icudt56l/coll/da.res
+++ b/src/cobalt/content/icu/icudt56l/coll/da.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/coll/de.res b/src/cobalt/content/icu/icudt56l/coll/de.res
index 42d0fed..28c8794 100644
--- a/src/cobalt/content/icu/icudt56l/coll/de.res
+++ b/src/cobalt/content/icu/icudt56l/coll/de.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/coll/de_AT.res b/src/cobalt/content/icu/icudt56l/coll/de_AT.res
index 8a598af..8bcbf4c 100644
--- a/src/cobalt/content/icu/icudt56l/coll/de_AT.res
+++ b/src/cobalt/content/icu/icudt56l/coll/de_AT.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/coll/el.res b/src/cobalt/content/icu/icudt56l/coll/el.res
index 4190b25..610281e 100644
--- a/src/cobalt/content/icu/icudt56l/coll/el.res
+++ b/src/cobalt/content/icu/icudt56l/coll/el.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/coll/es.res b/src/cobalt/content/icu/icudt56l/coll/es.res
index 0924aa2..be6fa50 100644
--- a/src/cobalt/content/icu/icudt56l/coll/es.res
+++ b/src/cobalt/content/icu/icudt56l/coll/es.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/coll/et.res b/src/cobalt/content/icu/icudt56l/coll/et.res
index 435d204..610281e 100644
--- a/src/cobalt/content/icu/icudt56l/coll/et.res
+++ b/src/cobalt/content/icu/icudt56l/coll/et.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/coll/fa.res b/src/cobalt/content/icu/icudt56l/coll/fa.res
index 77d20bf..610281e 100644
--- a/src/cobalt/content/icu/icudt56l/coll/fa.res
+++ b/src/cobalt/content/icu/icudt56l/coll/fa.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/coll/fi.res b/src/cobalt/content/icu/icudt56l/coll/fi.res
index d4545cb..be6fa50 100644
--- a/src/cobalt/content/icu/icudt56l/coll/fi.res
+++ b/src/cobalt/content/icu/icudt56l/coll/fi.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/coll/fil.res b/src/cobalt/content/icu/icudt56l/coll/fil.res
index 9bbe4fa..610281e 100644
--- a/src/cobalt/content/icu/icudt56l/coll/fil.res
+++ b/src/cobalt/content/icu/icudt56l/coll/fil.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/coll/fr_CA.res b/src/cobalt/content/icu/icudt56l/coll/fr_CA.res
index faf3f21..610281e 100644
--- a/src/cobalt/content/icu/icudt56l/coll/fr_CA.res
+++ b/src/cobalt/content/icu/icudt56l/coll/fr_CA.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/coll/gu.res b/src/cobalt/content/icu/icudt56l/coll/gu.res
index e131aac..610281e 100644
--- a/src/cobalt/content/icu/icudt56l/coll/gu.res
+++ b/src/cobalt/content/icu/icudt56l/coll/gu.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/coll/he.res b/src/cobalt/content/icu/icudt56l/coll/he.res
index 270a0d6..6b71925 100644
--- a/src/cobalt/content/icu/icudt56l/coll/he.res
+++ b/src/cobalt/content/icu/icudt56l/coll/he.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/coll/hi.res b/src/cobalt/content/icu/icudt56l/coll/hi.res
index 1ab090a..610281e 100644
--- a/src/cobalt/content/icu/icudt56l/coll/hi.res
+++ b/src/cobalt/content/icu/icudt56l/coll/hi.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/coll/hr.res b/src/cobalt/content/icu/icudt56l/coll/hr.res
index 360d336..6b71925 100644
--- a/src/cobalt/content/icu/icudt56l/coll/hr.res
+++ b/src/cobalt/content/icu/icudt56l/coll/hr.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/coll/hu.res b/src/cobalt/content/icu/icudt56l/coll/hu.res
index 8de940f..610281e 100644
--- a/src/cobalt/content/icu/icudt56l/coll/hu.res
+++ b/src/cobalt/content/icu/icudt56l/coll/hu.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/coll/ja.res b/src/cobalt/content/icu/icudt56l/coll/ja.res
index 531a1f3..698d0e6 100644
--- a/src/cobalt/content/icu/icudt56l/coll/ja.res
+++ b/src/cobalt/content/icu/icudt56l/coll/ja.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/coll/kn.res b/src/cobalt/content/icu/icudt56l/coll/kn.res
index 8fd0fd6..1466600 100644
--- a/src/cobalt/content/icu/icudt56l/coll/kn.res
+++ b/src/cobalt/content/icu/icudt56l/coll/kn.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/coll/ko.res b/src/cobalt/content/icu/icudt56l/coll/ko.res
index 8f87327..4587fa1 100644
--- a/src/cobalt/content/icu/icudt56l/coll/ko.res
+++ b/src/cobalt/content/icu/icudt56l/coll/ko.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/coll/lt.res b/src/cobalt/content/icu/icudt56l/coll/lt.res
index df61039..610281e 100644
--- a/src/cobalt/content/icu/icudt56l/coll/lt.res
+++ b/src/cobalt/content/icu/icudt56l/coll/lt.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/coll/lv.res b/src/cobalt/content/icu/icudt56l/coll/lv.res
index 13c655e..610281e 100644
--- a/src/cobalt/content/icu/icudt56l/coll/lv.res
+++ b/src/cobalt/content/icu/icudt56l/coll/lv.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/coll/ml.res b/src/cobalt/content/icu/icudt56l/coll/ml.res
index 26e09f3..610281e 100644
--- a/src/cobalt/content/icu/icudt56l/coll/ml.res
+++ b/src/cobalt/content/icu/icudt56l/coll/ml.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/coll/mr.res b/src/cobalt/content/icu/icudt56l/coll/mr.res
index f4d2cc1..610281e 100644
--- a/src/cobalt/content/icu/icudt56l/coll/mr.res
+++ b/src/cobalt/content/icu/icudt56l/coll/mr.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/coll/nb.res b/src/cobalt/content/icu/icudt56l/coll/nb.res
index fdc51f7..6b71925 100644
--- a/src/cobalt/content/icu/icudt56l/coll/nb.res
+++ b/src/cobalt/content/icu/icudt56l/coll/nb.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/coll/nn.res b/src/cobalt/content/icu/icudt56l/coll/nn.res
index fdc51f7..6b71925 100644
--- a/src/cobalt/content/icu/icudt56l/coll/nn.res
+++ b/src/cobalt/content/icu/icudt56l/coll/nn.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/coll/pl.res b/src/cobalt/content/icu/icudt56l/coll/pl.res
index 4858e5a..610281e 100644
--- a/src/cobalt/content/icu/icudt56l/coll/pl.res
+++ b/src/cobalt/content/icu/icudt56l/coll/pl.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/coll/ro.res b/src/cobalt/content/icu/icudt56l/coll/ro.res
index 1ea81ae..610281e 100644
--- a/src/cobalt/content/icu/icudt56l/coll/ro.res
+++ b/src/cobalt/content/icu/icudt56l/coll/ro.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/coll/root.res b/src/cobalt/content/icu/icudt56l/coll/root.res
index b01bb24..98ee81b 100644
--- a/src/cobalt/content/icu/icudt56l/coll/root.res
+++ b/src/cobalt/content/icu/icudt56l/coll/root.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/coll/ru.res b/src/cobalt/content/icu/icudt56l/coll/ru.res
index 671f9b1..610281e 100644
--- a/src/cobalt/content/icu/icudt56l/coll/ru.res
+++ b/src/cobalt/content/icu/icudt56l/coll/ru.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/coll/sk.res b/src/cobalt/content/icu/icudt56l/coll/sk.res
index 082406d..6b71925 100644
--- a/src/cobalt/content/icu/icudt56l/coll/sk.res
+++ b/src/cobalt/content/icu/icudt56l/coll/sk.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/coll/sl.res b/src/cobalt/content/icu/icudt56l/coll/sl.res
index 6f173e1..610281e 100644
--- a/src/cobalt/content/icu/icudt56l/coll/sl.res
+++ b/src/cobalt/content/icu/icudt56l/coll/sl.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/coll/sr.res b/src/cobalt/content/icu/icudt56l/coll/sr.res
index 4c166cc..610281e 100644
--- a/src/cobalt/content/icu/icudt56l/coll/sr.res
+++ b/src/cobalt/content/icu/icudt56l/coll/sr.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/coll/sr_Latn.res b/src/cobalt/content/icu/icudt56l/coll/sr_Latn.res
index 360d336..6b71925 100644
--- a/src/cobalt/content/icu/icudt56l/coll/sr_Latn.res
+++ b/src/cobalt/content/icu/icudt56l/coll/sr_Latn.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/coll/sv.res b/src/cobalt/content/icu/icudt56l/coll/sv.res
index 97305c2..b4f08b9 100644
--- a/src/cobalt/content/icu/icudt56l/coll/sv.res
+++ b/src/cobalt/content/icu/icudt56l/coll/sv.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/coll/ta.res b/src/cobalt/content/icu/icudt56l/coll/ta.res
index 95b6947..610281e 100644
--- a/src/cobalt/content/icu/icudt56l/coll/ta.res
+++ b/src/cobalt/content/icu/icudt56l/coll/ta.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/coll/te.res b/src/cobalt/content/icu/icudt56l/coll/te.res
index 93e0bd8..610281e 100644
--- a/src/cobalt/content/icu/icudt56l/coll/te.res
+++ b/src/cobalt/content/icu/icudt56l/coll/te.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/coll/th.res b/src/cobalt/content/icu/icudt56l/coll/th.res
index de60121..610281e 100644
--- a/src/cobalt/content/icu/icudt56l/coll/th.res
+++ b/src/cobalt/content/icu/icudt56l/coll/th.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/coll/tr.res b/src/cobalt/content/icu/icudt56l/coll/tr.res
index c51837b..6b71925 100644
--- a/src/cobalt/content/icu/icudt56l/coll/tr.res
+++ b/src/cobalt/content/icu/icudt56l/coll/tr.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/coll/uk.res b/src/cobalt/content/icu/icudt56l/coll/uk.res
index 90239f6..610281e 100644
--- a/src/cobalt/content/icu/icudt56l/coll/uk.res
+++ b/src/cobalt/content/icu/icudt56l/coll/uk.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/coll/vi.res b/src/cobalt/content/icu/icudt56l/coll/vi.res
index 906ef33..1466600 100644
--- a/src/cobalt/content/icu/icudt56l/coll/vi.res
+++ b/src/cobalt/content/icu/icudt56l/coll/vi.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/coll/zh.res b/src/cobalt/content/icu/icudt56l/coll/zh.res
index 14d076c..cf84785 100644
--- a/src/cobalt/content/icu/icudt56l/coll/zh.res
+++ b/src/cobalt/content/icu/icudt56l/coll/zh.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/cs.res b/src/cobalt/content/icu/icudt56l/cs.res
index 09ea881..b643760 100644
--- a/src/cobalt/content/icu/icudt56l/cs.res
+++ b/src/cobalt/content/icu/icudt56l/cs.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/curr/am.res b/src/cobalt/content/icu/icudt56l/curr/am.res
index d29ad5d..c699256 100644
--- a/src/cobalt/content/icu/icudt56l/curr/am.res
+++ b/src/cobalt/content/icu/icudt56l/curr/am.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/curr/ar.res b/src/cobalt/content/icu/icudt56l/curr/ar.res
index 77a62e9..824ff84 100644
--- a/src/cobalt/content/icu/icudt56l/curr/ar.res
+++ b/src/cobalt/content/icu/icudt56l/curr/ar.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/curr/bg.res b/src/cobalt/content/icu/icudt56l/curr/bg.res
index 52f8374..2c0a02a 100644
--- a/src/cobalt/content/icu/icudt56l/curr/bg.res
+++ b/src/cobalt/content/icu/icudt56l/curr/bg.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/curr/ca.res b/src/cobalt/content/icu/icudt56l/curr/ca.res
index 24b4a8f..c2837c3 100644
--- a/src/cobalt/content/icu/icudt56l/curr/ca.res
+++ b/src/cobalt/content/icu/icudt56l/curr/ca.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/curr/cs.res b/src/cobalt/content/icu/icudt56l/curr/cs.res
index 81651e2..109596a 100644
--- a/src/cobalt/content/icu/icudt56l/curr/cs.res
+++ b/src/cobalt/content/icu/icudt56l/curr/cs.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/curr/da.res b/src/cobalt/content/icu/icudt56l/curr/da.res
index d7aa6cb..9a6bf36 100644
--- a/src/cobalt/content/icu/icudt56l/curr/da.res
+++ b/src/cobalt/content/icu/icudt56l/curr/da.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/curr/de.res b/src/cobalt/content/icu/icudt56l/curr/de.res
index f9e3149..6e731e7 100644
--- a/src/cobalt/content/icu/icudt56l/curr/de.res
+++ b/src/cobalt/content/icu/icudt56l/curr/de.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/curr/de_CH.res b/src/cobalt/content/icu/icudt56l/curr/de_CH.res
index 48a1a39..72cf49b 100644
--- a/src/cobalt/content/icu/icudt56l/curr/de_CH.res
+++ b/src/cobalt/content/icu/icudt56l/curr/de_CH.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/curr/el.res b/src/cobalt/content/icu/icudt56l/curr/el.res
index 18963be..203dc21 100644
--- a/src/cobalt/content/icu/icudt56l/curr/el.res
+++ b/src/cobalt/content/icu/icudt56l/curr/el.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/curr/en.res b/src/cobalt/content/icu/icudt56l/curr/en.res
index 811bdc6..b78dd5c 100644
--- a/src/cobalt/content/icu/icudt56l/curr/en.res
+++ b/src/cobalt/content/icu/icudt56l/curr/en.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/curr/en_001.res b/src/cobalt/content/icu/icudt56l/curr/en_001.res
index a11d32a..7c956d8 100644
--- a/src/cobalt/content/icu/icudt56l/curr/en_001.res
+++ b/src/cobalt/content/icu/icudt56l/curr/en_001.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/curr/en_150.res b/src/cobalt/content/icu/icudt56l/curr/en_150.res
index 652676e..18f73dd 100644
--- a/src/cobalt/content/icu/icudt56l/curr/en_150.res
+++ b/src/cobalt/content/icu/icudt56l/curr/en_150.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/curr/en_AU.res b/src/cobalt/content/icu/icudt56l/curr/en_AU.res
index 62e8a60..8f30277 100644
--- a/src/cobalt/content/icu/icudt56l/curr/en_AU.res
+++ b/src/cobalt/content/icu/icudt56l/curr/en_AU.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/curr/en_CA.res b/src/cobalt/content/icu/icudt56l/curr/en_CA.res
index fce360b..97b6a41 100644
--- a/src/cobalt/content/icu/icudt56l/curr/en_CA.res
+++ b/src/cobalt/content/icu/icudt56l/curr/en_CA.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/curr/en_GB.res b/src/cobalt/content/icu/icudt56l/curr/en_GB.res
index 73c4d73..5da4594 100644
--- a/src/cobalt/content/icu/icudt56l/curr/en_GB.res
+++ b/src/cobalt/content/icu/icudt56l/curr/en_GB.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/curr/en_IN.res b/src/cobalt/content/icu/icudt56l/curr/en_IN.res
index 3cb138e..5ffbeed 100644
--- a/src/cobalt/content/icu/icudt56l/curr/en_IN.res
+++ b/src/cobalt/content/icu/icudt56l/curr/en_IN.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/curr/en_NZ.res b/src/cobalt/content/icu/icudt56l/curr/en_NZ.res
index f18ccaf..2362d04 100644
--- a/src/cobalt/content/icu/icudt56l/curr/en_NZ.res
+++ b/src/cobalt/content/icu/icudt56l/curr/en_NZ.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/curr/en_ZA.res b/src/cobalt/content/icu/icudt56l/curr/en_ZA.res
index 16c361d..ba034a5 100644
--- a/src/cobalt/content/icu/icudt56l/curr/en_ZA.res
+++ b/src/cobalt/content/icu/icudt56l/curr/en_ZA.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/curr/es.res b/src/cobalt/content/icu/icudt56l/curr/es.res
index c0c5157..95b9e65 100644
--- a/src/cobalt/content/icu/icudt56l/curr/es.res
+++ b/src/cobalt/content/icu/icudt56l/curr/es.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/curr/es_419.res b/src/cobalt/content/icu/icudt56l/curr/es_419.res
index 253e199..07aa4f5 100644
--- a/src/cobalt/content/icu/icudt56l/curr/es_419.res
+++ b/src/cobalt/content/icu/icudt56l/curr/es_419.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/curr/es_AR.res b/src/cobalt/content/icu/icudt56l/curr/es_AR.res
index 00b8496..1be6445 100644
--- a/src/cobalt/content/icu/icudt56l/curr/es_AR.res
+++ b/src/cobalt/content/icu/icudt56l/curr/es_AR.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/curr/es_MX.res b/src/cobalt/content/icu/icudt56l/curr/es_MX.res
index ef02555..d24b22b 100644
--- a/src/cobalt/content/icu/icudt56l/curr/es_MX.res
+++ b/src/cobalt/content/icu/icudt56l/curr/es_MX.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/curr/es_US.res b/src/cobalt/content/icu/icudt56l/curr/es_US.res
index ab00ff3..b259afe 100644
--- a/src/cobalt/content/icu/icudt56l/curr/es_US.res
+++ b/src/cobalt/content/icu/icudt56l/curr/es_US.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/curr/fa.res b/src/cobalt/content/icu/icudt56l/curr/fa.res
index 591bc05..116109a 100644
--- a/src/cobalt/content/icu/icudt56l/curr/fa.res
+++ b/src/cobalt/content/icu/icudt56l/curr/fa.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/curr/fi.res b/src/cobalt/content/icu/icudt56l/curr/fi.res
index 3b60b68..084bbe8 100644
--- a/src/cobalt/content/icu/icudt56l/curr/fi.res
+++ b/src/cobalt/content/icu/icudt56l/curr/fi.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/curr/fil.res b/src/cobalt/content/icu/icudt56l/curr/fil.res
index 230aeb6..aebff6b 100644
--- a/src/cobalt/content/icu/icudt56l/curr/fil.res
+++ b/src/cobalt/content/icu/icudt56l/curr/fil.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/curr/fr.res b/src/cobalt/content/icu/icudt56l/curr/fr.res
index 1f97b3e..44ee62f 100644
--- a/src/cobalt/content/icu/icudt56l/curr/fr.res
+++ b/src/cobalt/content/icu/icudt56l/curr/fr.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/curr/fr_CA.res b/src/cobalt/content/icu/icudt56l/curr/fr_CA.res
index 4799514..fb00495 100644
--- a/src/cobalt/content/icu/icudt56l/curr/fr_CA.res
+++ b/src/cobalt/content/icu/icudt56l/curr/fr_CA.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/curr/he.res b/src/cobalt/content/icu/icudt56l/curr/he.res
index 64fdace..724a6ab 100644
--- a/src/cobalt/content/icu/icudt56l/curr/he.res
+++ b/src/cobalt/content/icu/icudt56l/curr/he.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/curr/hi.res b/src/cobalt/content/icu/icudt56l/curr/hi.res
index 7534109..c526cee 100644
--- a/src/cobalt/content/icu/icudt56l/curr/hi.res
+++ b/src/cobalt/content/icu/icudt56l/curr/hi.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/curr/hr.res b/src/cobalt/content/icu/icudt56l/curr/hr.res
index acc0983..2e47654 100644
--- a/src/cobalt/content/icu/icudt56l/curr/hr.res
+++ b/src/cobalt/content/icu/icudt56l/curr/hr.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/curr/hu.res b/src/cobalt/content/icu/icudt56l/curr/hu.res
index 1d83f9b..690eb17 100644
--- a/src/cobalt/content/icu/icudt56l/curr/hu.res
+++ b/src/cobalt/content/icu/icudt56l/curr/hu.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/curr/id.res b/src/cobalt/content/icu/icudt56l/curr/id.res
index f5046d5..9c68843 100644
--- a/src/cobalt/content/icu/icudt56l/curr/id.res
+++ b/src/cobalt/content/icu/icudt56l/curr/id.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/curr/in.res b/src/cobalt/content/icu/icudt56l/curr/in.res
index 0606cd4..dfcbe33 100644
--- a/src/cobalt/content/icu/icudt56l/curr/in.res
+++ b/src/cobalt/content/icu/icudt56l/curr/in.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/curr/it.res b/src/cobalt/content/icu/icudt56l/curr/it.res
index d3fd8df..5c9a53c 100644
--- a/src/cobalt/content/icu/icudt56l/curr/it.res
+++ b/src/cobalt/content/icu/icudt56l/curr/it.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/curr/iw.res b/src/cobalt/content/icu/icudt56l/curr/iw.res
index 67f7066..dff9e6c 100644
--- a/src/cobalt/content/icu/icudt56l/curr/iw.res
+++ b/src/cobalt/content/icu/icudt56l/curr/iw.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/curr/ja.res b/src/cobalt/content/icu/icudt56l/curr/ja.res
index 2b6fc92..4bd7641 100644
--- a/src/cobalt/content/icu/icudt56l/curr/ja.res
+++ b/src/cobalt/content/icu/icudt56l/curr/ja.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/curr/ko.res b/src/cobalt/content/icu/icudt56l/curr/ko.res
index 8866594..06b3fa6 100644
--- a/src/cobalt/content/icu/icudt56l/curr/ko.res
+++ b/src/cobalt/content/icu/icudt56l/curr/ko.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/curr/lt.res b/src/cobalt/content/icu/icudt56l/curr/lt.res
index 32a614c..056b778 100644
--- a/src/cobalt/content/icu/icudt56l/curr/lt.res
+++ b/src/cobalt/content/icu/icudt56l/curr/lt.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/curr/lv.res b/src/cobalt/content/icu/icudt56l/curr/lv.res
index f1619e1..c6f2d7f 100644
--- a/src/cobalt/content/icu/icudt56l/curr/lv.res
+++ b/src/cobalt/content/icu/icudt56l/curr/lv.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/curr/nb.res b/src/cobalt/content/icu/icudt56l/curr/nb.res
index af3df3b..cbd603d 100644
--- a/src/cobalt/content/icu/icudt56l/curr/nb.res
+++ b/src/cobalt/content/icu/icudt56l/curr/nb.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/curr/nl.res b/src/cobalt/content/icu/icudt56l/curr/nl.res
index 26191f0..f53d29e 100644
--- a/src/cobalt/content/icu/icudt56l/curr/nl.res
+++ b/src/cobalt/content/icu/icudt56l/curr/nl.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/curr/no.res b/src/cobalt/content/icu/icudt56l/curr/no.res
index f74cd4c..7c0017a 100644
--- a/src/cobalt/content/icu/icudt56l/curr/no.res
+++ b/src/cobalt/content/icu/icudt56l/curr/no.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/curr/pl.res b/src/cobalt/content/icu/icudt56l/curr/pl.res
index d4d6422..c8db80d 100644
--- a/src/cobalt/content/icu/icudt56l/curr/pl.res
+++ b/src/cobalt/content/icu/icudt56l/curr/pl.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/curr/pool.res b/src/cobalt/content/icu/icudt56l/curr/pool.res
index 7dd8d59..8c07f44 100644
--- a/src/cobalt/content/icu/icudt56l/curr/pool.res
+++ b/src/cobalt/content/icu/icudt56l/curr/pool.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/curr/pt.res b/src/cobalt/content/icu/icudt56l/curr/pt.res
index a029c17..6920e2b 100644
--- a/src/cobalt/content/icu/icudt56l/curr/pt.res
+++ b/src/cobalt/content/icu/icudt56l/curr/pt.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/curr/pt_PT.res b/src/cobalt/content/icu/icudt56l/curr/pt_PT.res
index f467c2e..43913fd 100644
--- a/src/cobalt/content/icu/icudt56l/curr/pt_PT.res
+++ b/src/cobalt/content/icu/icudt56l/curr/pt_PT.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/curr/ro.res b/src/cobalt/content/icu/icudt56l/curr/ro.res
index c005b60..1020d3d 100644
--- a/src/cobalt/content/icu/icudt56l/curr/ro.res
+++ b/src/cobalt/content/icu/icudt56l/curr/ro.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/curr/root.res b/src/cobalt/content/icu/icudt56l/curr/root.res
index 5a84b17..e5be485 100644
--- a/src/cobalt/content/icu/icudt56l/curr/root.res
+++ b/src/cobalt/content/icu/icudt56l/curr/root.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/curr/ru.res b/src/cobalt/content/icu/icudt56l/curr/ru.res
index 9e799d5..6abb401 100644
--- a/src/cobalt/content/icu/icudt56l/curr/ru.res
+++ b/src/cobalt/content/icu/icudt56l/curr/ru.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/curr/sk.res b/src/cobalt/content/icu/icudt56l/curr/sk.res
index b0714a2..a742fcd 100644
--- a/src/cobalt/content/icu/icudt56l/curr/sk.res
+++ b/src/cobalt/content/icu/icudt56l/curr/sk.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/curr/sl.res b/src/cobalt/content/icu/icudt56l/curr/sl.res
index 5e78acd..5a2f0e6 100644
--- a/src/cobalt/content/icu/icudt56l/curr/sl.res
+++ b/src/cobalt/content/icu/icudt56l/curr/sl.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/curr/sr.res b/src/cobalt/content/icu/icudt56l/curr/sr.res
index 59c3cf6..1e9de53 100644
--- a/src/cobalt/content/icu/icudt56l/curr/sr.res
+++ b/src/cobalt/content/icu/icudt56l/curr/sr.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/curr/supplementalData.res b/src/cobalt/content/icu/icudt56l/curr/supplementalData.res
index c63d565..cd49222 100644
--- a/src/cobalt/content/icu/icudt56l/curr/supplementalData.res
+++ b/src/cobalt/content/icu/icudt56l/curr/supplementalData.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/curr/sv.res b/src/cobalt/content/icu/icudt56l/curr/sv.res
index 93792b1..f12ee83 100644
--- a/src/cobalt/content/icu/icudt56l/curr/sv.res
+++ b/src/cobalt/content/icu/icudt56l/curr/sv.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/curr/sw.res b/src/cobalt/content/icu/icudt56l/curr/sw.res
index af1859f..6f34fc4 100644
--- a/src/cobalt/content/icu/icudt56l/curr/sw.res
+++ b/src/cobalt/content/icu/icudt56l/curr/sw.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/curr/th.res b/src/cobalt/content/icu/icudt56l/curr/th.res
index 527ed97..7044e5f 100644
--- a/src/cobalt/content/icu/icudt56l/curr/th.res
+++ b/src/cobalt/content/icu/icudt56l/curr/th.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/curr/tl.res b/src/cobalt/content/icu/icudt56l/curr/tl.res
index 557adc4..652cad3 100644
--- a/src/cobalt/content/icu/icudt56l/curr/tl.res
+++ b/src/cobalt/content/icu/icudt56l/curr/tl.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/curr/tr.res b/src/cobalt/content/icu/icudt56l/curr/tr.res
index d89a965..ee3bc4d 100644
--- a/src/cobalt/content/icu/icudt56l/curr/tr.res
+++ b/src/cobalt/content/icu/icudt56l/curr/tr.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/curr/uk.res b/src/cobalt/content/icu/icudt56l/curr/uk.res
index e36e052..f733288 100644
--- a/src/cobalt/content/icu/icudt56l/curr/uk.res
+++ b/src/cobalt/content/icu/icudt56l/curr/uk.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/curr/vi.res b/src/cobalt/content/icu/icudt56l/curr/vi.res
index 067b5da..6d7281f 100644
--- a/src/cobalt/content/icu/icudt56l/curr/vi.res
+++ b/src/cobalt/content/icu/icudt56l/curr/vi.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/curr/zh.res b/src/cobalt/content/icu/icudt56l/curr/zh.res
index bc544da..248cb79 100644
--- a/src/cobalt/content/icu/icudt56l/curr/zh.res
+++ b/src/cobalt/content/icu/icudt56l/curr/zh.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/curr/zh_CN.res b/src/cobalt/content/icu/icudt56l/curr/zh_CN.res
index f94bafe..d44eba3 100644
--- a/src/cobalt/content/icu/icudt56l/curr/zh_CN.res
+++ b/src/cobalt/content/icu/icudt56l/curr/zh_CN.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/curr/zh_HK.res b/src/cobalt/content/icu/icudt56l/curr/zh_HK.res
index a72da46..84900e7 100644
--- a/src/cobalt/content/icu/icudt56l/curr/zh_HK.res
+++ b/src/cobalt/content/icu/icudt56l/curr/zh_HK.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/curr/zh_Hans.res b/src/cobalt/content/icu/icudt56l/curr/zh_Hans.res
index 3452716..9c3ad5f 100644
--- a/src/cobalt/content/icu/icudt56l/curr/zh_Hans.res
+++ b/src/cobalt/content/icu/icudt56l/curr/zh_Hans.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/curr/zh_Hans_CN.res b/src/cobalt/content/icu/icudt56l/curr/zh_Hans_CN.res
index c704cfa..39648f2 100644
--- a/src/cobalt/content/icu/icudt56l/curr/zh_Hans_CN.res
+++ b/src/cobalt/content/icu/icudt56l/curr/zh_Hans_CN.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/curr/zh_Hans_SG.res b/src/cobalt/content/icu/icudt56l/curr/zh_Hans_SG.res
index d46a443..3a8c484 100644
--- a/src/cobalt/content/icu/icudt56l/curr/zh_Hans_SG.res
+++ b/src/cobalt/content/icu/icudt56l/curr/zh_Hans_SG.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/curr/zh_Hant.res b/src/cobalt/content/icu/icudt56l/curr/zh_Hant.res
index 99b5b2b..ceb21a0 100644
--- a/src/cobalt/content/icu/icudt56l/curr/zh_Hant.res
+++ b/src/cobalt/content/icu/icudt56l/curr/zh_Hant.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/curr/zh_Hant_HK.res b/src/cobalt/content/icu/icudt56l/curr/zh_Hant_HK.res
index 95843d1..abfef87 100644
--- a/src/cobalt/content/icu/icudt56l/curr/zh_Hant_HK.res
+++ b/src/cobalt/content/icu/icudt56l/curr/zh_Hant_HK.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/curr/zh_Hant_TW.res b/src/cobalt/content/icu/icudt56l/curr/zh_Hant_TW.res
index c704cfa..39648f2 100644
--- a/src/cobalt/content/icu/icudt56l/curr/zh_Hant_TW.res
+++ b/src/cobalt/content/icu/icudt56l/curr/zh_Hant_TW.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/curr/zh_SG.res b/src/cobalt/content/icu/icudt56l/curr/zh_SG.res
index ffb8395..6ddf438 100644
--- a/src/cobalt/content/icu/icudt56l/curr/zh_SG.res
+++ b/src/cobalt/content/icu/icudt56l/curr/zh_SG.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/curr/zh_TW.res b/src/cobalt/content/icu/icudt56l/curr/zh_TW.res
index 41f37d1..0d3071f 100644
--- a/src/cobalt/content/icu/icudt56l/curr/zh_TW.res
+++ b/src/cobalt/content/icu/icudt56l/curr/zh_TW.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/cy.res b/src/cobalt/content/icu/icudt56l/cy.res
index f9a9812..31bfcb9 100644
--- a/src/cobalt/content/icu/icudt56l/cy.res
+++ b/src/cobalt/content/icu/icudt56l/cy.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/da.res b/src/cobalt/content/icu/icudt56l/da.res
index 6a7c227..c960bd0 100644
--- a/src/cobalt/content/icu/icudt56l/da.res
+++ b/src/cobalt/content/icu/icudt56l/da.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/de.res b/src/cobalt/content/icu/icudt56l/de.res
index 7512b61..bc5b990 100644
--- a/src/cobalt/content/icu/icudt56l/de.res
+++ b/src/cobalt/content/icu/icudt56l/de.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/de_AT.res b/src/cobalt/content/icu/icudt56l/de_AT.res
index c5c25df..9ad59a5 100644
--- a/src/cobalt/content/icu/icudt56l/de_AT.res
+++ b/src/cobalt/content/icu/icudt56l/de_AT.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/de_CH.res b/src/cobalt/content/icu/icudt56l/de_CH.res
index e29448a..d867489 100644
--- a/src/cobalt/content/icu/icudt56l/de_CH.res
+++ b/src/cobalt/content/icu/icudt56l/de_CH.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/ee.res b/src/cobalt/content/icu/icudt56l/ee.res
index 1ff9820..0841690 100644
--- a/src/cobalt/content/icu/icudt56l/ee.res
+++ b/src/cobalt/content/icu/icudt56l/ee.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/el.res b/src/cobalt/content/icu/icudt56l/el.res
index 24b221d..5c8708e 100644
--- a/src/cobalt/content/icu/icudt56l/el.res
+++ b/src/cobalt/content/icu/icudt56l/el.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/en.res b/src/cobalt/content/icu/icudt56l/en.res
index 4d29085..f4e06bc 100644
--- a/src/cobalt/content/icu/icudt56l/en.res
+++ b/src/cobalt/content/icu/icudt56l/en.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/en_001.res b/src/cobalt/content/icu/icudt56l/en_001.res
index abc68ca..c9f3b89 100644
--- a/src/cobalt/content/icu/icudt56l/en_001.res
+++ b/src/cobalt/content/icu/icudt56l/en_001.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/en_150.res b/src/cobalt/content/icu/icudt56l/en_150.res
index 4dc79df..c454e67 100644
--- a/src/cobalt/content/icu/icudt56l/en_150.res
+++ b/src/cobalt/content/icu/icudt56l/en_150.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/en_AU.res b/src/cobalt/content/icu/icudt56l/en_AU.res
index 83a901e..99b8d95 100644
--- a/src/cobalt/content/icu/icudt56l/en_AU.res
+++ b/src/cobalt/content/icu/icudt56l/en_AU.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/en_CA.res b/src/cobalt/content/icu/icudt56l/en_CA.res
index bc52baa..ec846ff 100644
--- a/src/cobalt/content/icu/icudt56l/en_CA.res
+++ b/src/cobalt/content/icu/icudt56l/en_CA.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/en_GB.res b/src/cobalt/content/icu/icudt56l/en_GB.res
index 4bbb5cc..0afa7b6 100644
--- a/src/cobalt/content/icu/icudt56l/en_GB.res
+++ b/src/cobalt/content/icu/icudt56l/en_GB.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/en_IN.res b/src/cobalt/content/icu/icudt56l/en_IN.res
index 05e2ca0..230aff9 100644
--- a/src/cobalt/content/icu/icudt56l/en_IN.res
+++ b/src/cobalt/content/icu/icudt56l/en_IN.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/en_NZ.res b/src/cobalt/content/icu/icudt56l/en_NZ.res
index cece412..b66ed27 100644
--- a/src/cobalt/content/icu/icudt56l/en_NZ.res
+++ b/src/cobalt/content/icu/icudt56l/en_NZ.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/en_US.res b/src/cobalt/content/icu/icudt56l/en_US.res
index 008e4b7..d0ddba1 100644
--- a/src/cobalt/content/icu/icudt56l/en_US.res
+++ b/src/cobalt/content/icu/icudt56l/en_US.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/en_ZA.res b/src/cobalt/content/icu/icudt56l/en_ZA.res
index 885ee5c..3e75979 100644
--- a/src/cobalt/content/icu/icudt56l/en_ZA.res
+++ b/src/cobalt/content/icu/icudt56l/en_ZA.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/eo.res b/src/cobalt/content/icu/icudt56l/eo.res
index 396eb3a..3ef0851 100644
--- a/src/cobalt/content/icu/icudt56l/eo.res
+++ b/src/cobalt/content/icu/icudt56l/eo.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/es.res b/src/cobalt/content/icu/icudt56l/es.res
index 76bbc8d..3fd059f 100644
--- a/src/cobalt/content/icu/icudt56l/es.res
+++ b/src/cobalt/content/icu/icudt56l/es.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/es_419.res b/src/cobalt/content/icu/icudt56l/es_419.res
index b880024..4cd3949 100644
--- a/src/cobalt/content/icu/icudt56l/es_419.res
+++ b/src/cobalt/content/icu/icudt56l/es_419.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/es_AR.res b/src/cobalt/content/icu/icudt56l/es_AR.res
index 7ec0cc5..8a7e563 100644
--- a/src/cobalt/content/icu/icudt56l/es_AR.res
+++ b/src/cobalt/content/icu/icudt56l/es_AR.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/es_ES.res b/src/cobalt/content/icu/icudt56l/es_ES.res
index 008e4b7..d0ddba1 100644
--- a/src/cobalt/content/icu/icudt56l/es_ES.res
+++ b/src/cobalt/content/icu/icudt56l/es_ES.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/es_MX.res b/src/cobalt/content/icu/icudt56l/es_MX.res
index c15d05f..326f91c 100644
--- a/src/cobalt/content/icu/icudt56l/es_MX.res
+++ b/src/cobalt/content/icu/icudt56l/es_MX.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/es_US.res b/src/cobalt/content/icu/icudt56l/es_US.res
index c21fa87..196c802 100644
--- a/src/cobalt/content/icu/icudt56l/es_US.res
+++ b/src/cobalt/content/icu/icudt56l/es_US.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/et.res b/src/cobalt/content/icu/icudt56l/et.res
index 1d58d37..0587d8a 100644
--- a/src/cobalt/content/icu/icudt56l/et.res
+++ b/src/cobalt/content/icu/icudt56l/et.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/eu.res b/src/cobalt/content/icu/icudt56l/eu.res
index 4aacb51..a8bbdb0 100644
--- a/src/cobalt/content/icu/icudt56l/eu.res
+++ b/src/cobalt/content/icu/icudt56l/eu.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/fa.res b/src/cobalt/content/icu/icudt56l/fa.res
index ce1ed39..987ef94 100644
--- a/src/cobalt/content/icu/icudt56l/fa.res
+++ b/src/cobalt/content/icu/icudt56l/fa.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/fi.res b/src/cobalt/content/icu/icudt56l/fi.res
index 0de1572..b46d9ef 100644
--- a/src/cobalt/content/icu/icudt56l/fi.res
+++ b/src/cobalt/content/icu/icudt56l/fi.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/fil.res b/src/cobalt/content/icu/icudt56l/fil.res
index 497fddc..831e5c4 100644
--- a/src/cobalt/content/icu/icudt56l/fil.res
+++ b/src/cobalt/content/icu/icudt56l/fil.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/fo.res b/src/cobalt/content/icu/icudt56l/fo.res
index ed636b7..f9055888 100644
--- a/src/cobalt/content/icu/icudt56l/fo.res
+++ b/src/cobalt/content/icu/icudt56l/fo.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/fr.res b/src/cobalt/content/icu/icudt56l/fr.res
index fa0a350..b24d618 100644
--- a/src/cobalt/content/icu/icudt56l/fr.res
+++ b/src/cobalt/content/icu/icudt56l/fr.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/fr_CA.res b/src/cobalt/content/icu/icudt56l/fr_CA.res
index 4d95890..6bfbab5 100644
--- a/src/cobalt/content/icu/icudt56l/fr_CA.res
+++ b/src/cobalt/content/icu/icudt56l/fr_CA.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/fr_CH.res b/src/cobalt/content/icu/icudt56l/fr_CH.res
index 660f7cc..ca578e2 100644
--- a/src/cobalt/content/icu/icudt56l/fr_CH.res
+++ b/src/cobalt/content/icu/icudt56l/fr_CH.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/ga.res b/src/cobalt/content/icu/icudt56l/ga.res
index 557d401..7ab9307 100644
--- a/src/cobalt/content/icu/icudt56l/ga.res
+++ b/src/cobalt/content/icu/icudt56l/ga.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/gl.res b/src/cobalt/content/icu/icudt56l/gl.res
index 382bdcd..1576f90 100644
--- a/src/cobalt/content/icu/icudt56l/gl.res
+++ b/src/cobalt/content/icu/icudt56l/gl.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/gu.res b/src/cobalt/content/icu/icudt56l/gu.res
index 4f4387c..1c5e5a6 100644
--- a/src/cobalt/content/icu/icudt56l/gu.res
+++ b/src/cobalt/content/icu/icudt56l/gu.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/ha.res b/src/cobalt/content/icu/icudt56l/ha.res
index 56fa9c8..a41f4f9 100644
--- a/src/cobalt/content/icu/icudt56l/ha.res
+++ b/src/cobalt/content/icu/icudt56l/ha.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/haw.res b/src/cobalt/content/icu/icudt56l/haw.res
index e22d856..46c4980 100644
--- a/src/cobalt/content/icu/icudt56l/haw.res
+++ b/src/cobalt/content/icu/icudt56l/haw.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/he.res b/src/cobalt/content/icu/icudt56l/he.res
index 1437887..874b972 100644
--- a/src/cobalt/content/icu/icudt56l/he.res
+++ b/src/cobalt/content/icu/icudt56l/he.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/hi.res b/src/cobalt/content/icu/icudt56l/hi.res
index 6807120..17db902 100644
--- a/src/cobalt/content/icu/icudt56l/hi.res
+++ b/src/cobalt/content/icu/icudt56l/hi.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/hr.res b/src/cobalt/content/icu/icudt56l/hr.res
index 510a817..201c027 100644
--- a/src/cobalt/content/icu/icudt56l/hr.res
+++ b/src/cobalt/content/icu/icudt56l/hr.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/hu.res b/src/cobalt/content/icu/icudt56l/hu.res
index 1cad64f..e7b7c6b 100644
--- a/src/cobalt/content/icu/icudt56l/hu.res
+++ b/src/cobalt/content/icu/icudt56l/hu.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/hy.res b/src/cobalt/content/icu/icudt56l/hy.res
index 788c808..31f2a03 100644
--- a/src/cobalt/content/icu/icudt56l/hy.res
+++ b/src/cobalt/content/icu/icudt56l/hy.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/id.res b/src/cobalt/content/icu/icudt56l/id.res
index 113e603..42d1501 100644
--- a/src/cobalt/content/icu/icudt56l/id.res
+++ b/src/cobalt/content/icu/icudt56l/id.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/ig.res b/src/cobalt/content/icu/icudt56l/ig.res
index c16c2cb..4fe2b94 100644
--- a/src/cobalt/content/icu/icudt56l/ig.res
+++ b/src/cobalt/content/icu/icudt56l/ig.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/in.res b/src/cobalt/content/icu/icudt56l/in.res
index 37f737c..5717187 100644
--- a/src/cobalt/content/icu/icudt56l/in.res
+++ b/src/cobalt/content/icu/icudt56l/in.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/is.res b/src/cobalt/content/icu/icudt56l/is.res
index dc12018..7b55953 100644
--- a/src/cobalt/content/icu/icudt56l/is.res
+++ b/src/cobalt/content/icu/icudt56l/is.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/it.res b/src/cobalt/content/icu/icudt56l/it.res
index 017858b..d162675 100644
--- a/src/cobalt/content/icu/icudt56l/it.res
+++ b/src/cobalt/content/icu/icudt56l/it.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/it_CH.res b/src/cobalt/content/icu/icudt56l/it_CH.res
index 9a534b2..652ab6e 100644
--- a/src/cobalt/content/icu/icudt56l/it_CH.res
+++ b/src/cobalt/content/icu/icudt56l/it_CH.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/iw.res b/src/cobalt/content/icu/icudt56l/iw.res
index 0335003..dde8495 100644
--- a/src/cobalt/content/icu/icudt56l/iw.res
+++ b/src/cobalt/content/icu/icudt56l/iw.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/ja.res b/src/cobalt/content/icu/icudt56l/ja.res
index 1a946b0..21807a9 100644
--- a/src/cobalt/content/icu/icudt56l/ja.res
+++ b/src/cobalt/content/icu/icudt56l/ja.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/ka.res b/src/cobalt/content/icu/icudt56l/ka.res
index 0ba4979..adcb7d3 100644
--- a/src/cobalt/content/icu/icudt56l/ka.res
+++ b/src/cobalt/content/icu/icudt56l/ka.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/kk.res b/src/cobalt/content/icu/icudt56l/kk.res
index 4c0e93d..96c9f9b 100644
--- a/src/cobalt/content/icu/icudt56l/kk.res
+++ b/src/cobalt/content/icu/icudt56l/kk.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/km.res b/src/cobalt/content/icu/icudt56l/km.res
index 12beb53..2f736a4 100644
--- a/src/cobalt/content/icu/icudt56l/km.res
+++ b/src/cobalt/content/icu/icudt56l/km.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/kn.res b/src/cobalt/content/icu/icudt56l/kn.res
index 8aaa260..2902bd7 100644
--- a/src/cobalt/content/icu/icudt56l/kn.res
+++ b/src/cobalt/content/icu/icudt56l/kn.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/ko.res b/src/cobalt/content/icu/icudt56l/ko.res
index 19c8aa3..36fa41b 100644
--- a/src/cobalt/content/icu/icudt56l/ko.res
+++ b/src/cobalt/content/icu/icudt56l/ko.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/ku.res b/src/cobalt/content/icu/icudt56l/ku.res
index 81e0774..655b5a5 100644
--- a/src/cobalt/content/icu/icudt56l/ku.res
+++ b/src/cobalt/content/icu/icudt56l/ku.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/ky.res b/src/cobalt/content/icu/icudt56l/ky.res
index 17bd776..1f4ab15 100644
--- a/src/cobalt/content/icu/icudt56l/ky.res
+++ b/src/cobalt/content/icu/icudt56l/ky.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/af.res b/src/cobalt/content/icu/icudt56l/lang/af.res
index 8f4230f..1f0a3e5 100644
--- a/src/cobalt/content/icu/icudt56l/lang/af.res
+++ b/src/cobalt/content/icu/icudt56l/lang/af.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/ak.res b/src/cobalt/content/icu/icudt56l/lang/ak.res
index 8f4230f..1f0a3e5 100644
--- a/src/cobalt/content/icu/icudt56l/lang/ak.res
+++ b/src/cobalt/content/icu/icudt56l/lang/ak.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/am.res b/src/cobalt/content/icu/icudt56l/lang/am.res
index 1b34433..3d35959 100644
--- a/src/cobalt/content/icu/icudt56l/lang/am.res
+++ b/src/cobalt/content/icu/icudt56l/lang/am.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/an.res b/src/cobalt/content/icu/icudt56l/lang/an.res
index 8f4230f..1f0a3e5 100644
--- a/src/cobalt/content/icu/icudt56l/lang/an.res
+++ b/src/cobalt/content/icu/icudt56l/lang/an.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/ar.res b/src/cobalt/content/icu/icudt56l/lang/ar.res
index bb13917..1ab5683 100644
--- a/src/cobalt/content/icu/icudt56l/lang/ar.res
+++ b/src/cobalt/content/icu/icudt56l/lang/ar.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/ast.res b/src/cobalt/content/icu/icudt56l/lang/ast.res
index 8f4230f..1f0a3e5 100644
--- a/src/cobalt/content/icu/icudt56l/lang/ast.res
+++ b/src/cobalt/content/icu/icudt56l/lang/ast.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/az.res b/src/cobalt/content/icu/icudt56l/lang/az.res
index 8f4230f..1f0a3e5 100644
--- a/src/cobalt/content/icu/icudt56l/lang/az.res
+++ b/src/cobalt/content/icu/icudt56l/lang/az.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/be.res b/src/cobalt/content/icu/icudt56l/lang/be.res
index 8f4230f..1f0a3e5 100644
--- a/src/cobalt/content/icu/icudt56l/lang/be.res
+++ b/src/cobalt/content/icu/icudt56l/lang/be.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/bem.res b/src/cobalt/content/icu/icudt56l/lang/bem.res
index 8f4230f..1f0a3e5 100644
--- a/src/cobalt/content/icu/icudt56l/lang/bem.res
+++ b/src/cobalt/content/icu/icudt56l/lang/bem.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/bg.res b/src/cobalt/content/icu/icudt56l/lang/bg.res
index c728981..1a5be32 100644
--- a/src/cobalt/content/icu/icudt56l/lang/bg.res
+++ b/src/cobalt/content/icu/icudt56l/lang/bg.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/bn.res b/src/cobalt/content/icu/icudt56l/lang/bn.res
index 5c67430..4988bb9 100644
--- a/src/cobalt/content/icu/icudt56l/lang/bn.res
+++ b/src/cobalt/content/icu/icudt56l/lang/bn.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/br.res b/src/cobalt/content/icu/icudt56l/lang/br.res
index 8f4230f..1f0a3e5 100644
--- a/src/cobalt/content/icu/icudt56l/lang/br.res
+++ b/src/cobalt/content/icu/icudt56l/lang/br.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/bs.res b/src/cobalt/content/icu/icudt56l/lang/bs.res
index 8f4230f..1f0a3e5 100644
--- a/src/cobalt/content/icu/icudt56l/lang/bs.res
+++ b/src/cobalt/content/icu/icudt56l/lang/bs.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/ca.res b/src/cobalt/content/icu/icudt56l/lang/ca.res
index 09afb78..6fbca5d 100644
--- a/src/cobalt/content/icu/icudt56l/lang/ca.res
+++ b/src/cobalt/content/icu/icudt56l/lang/ca.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/ckb.res b/src/cobalt/content/icu/icudt56l/lang/ckb.res
index 8f4230f..1f0a3e5 100644
--- a/src/cobalt/content/icu/icudt56l/lang/ckb.res
+++ b/src/cobalt/content/icu/icudt56l/lang/ckb.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/cs.res b/src/cobalt/content/icu/icudt56l/lang/cs.res
index df5b7a0..28ecabe 100644
--- a/src/cobalt/content/icu/icudt56l/lang/cs.res
+++ b/src/cobalt/content/icu/icudt56l/lang/cs.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/cy.res b/src/cobalt/content/icu/icudt56l/lang/cy.res
index 8f4230f..1f0a3e5 100644
--- a/src/cobalt/content/icu/icudt56l/lang/cy.res
+++ b/src/cobalt/content/icu/icudt56l/lang/cy.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/da.res b/src/cobalt/content/icu/icudt56l/lang/da.res
index 93d9594..99a4dcd 100644
--- a/src/cobalt/content/icu/icudt56l/lang/da.res
+++ b/src/cobalt/content/icu/icudt56l/lang/da.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/de.res b/src/cobalt/content/icu/icudt56l/lang/de.res
index f698129..c1c8d5f 100644
--- a/src/cobalt/content/icu/icudt56l/lang/de.res
+++ b/src/cobalt/content/icu/icudt56l/lang/de.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/ee.res b/src/cobalt/content/icu/icudt56l/lang/ee.res
index 8f4230f..1f0a3e5 100644
--- a/src/cobalt/content/icu/icudt56l/lang/ee.res
+++ b/src/cobalt/content/icu/icudt56l/lang/ee.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/el.res b/src/cobalt/content/icu/icudt56l/lang/el.res
index feeb860..049baa1 100644
--- a/src/cobalt/content/icu/icudt56l/lang/el.res
+++ b/src/cobalt/content/icu/icudt56l/lang/el.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/en.res b/src/cobalt/content/icu/icudt56l/lang/en.res
index 63397b9..f90c97f 100644
--- a/src/cobalt/content/icu/icudt56l/lang/en.res
+++ b/src/cobalt/content/icu/icudt56l/lang/en.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/en_GB.res b/src/cobalt/content/icu/icudt56l/lang/en_GB.res
index e85d11d..01ae348 100644
--- a/src/cobalt/content/icu/icudt56l/lang/en_GB.res
+++ b/src/cobalt/content/icu/icudt56l/lang/en_GB.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/eo.res b/src/cobalt/content/icu/icudt56l/lang/eo.res
index 8f4230f..1f0a3e5 100644
--- a/src/cobalt/content/icu/icudt56l/lang/eo.res
+++ b/src/cobalt/content/icu/icudt56l/lang/eo.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/es.res b/src/cobalt/content/icu/icudt56l/lang/es.res
index f87be3d..e7db31e 100644
--- a/src/cobalt/content/icu/icudt56l/lang/es.res
+++ b/src/cobalt/content/icu/icudt56l/lang/es.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/es_419.res b/src/cobalt/content/icu/icudt56l/lang/es_419.res
index 2e8777e..837f6a0 100644
--- a/src/cobalt/content/icu/icudt56l/lang/es_419.res
+++ b/src/cobalt/content/icu/icudt56l/lang/es_419.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/et.res b/src/cobalt/content/icu/icudt56l/lang/et.res
index 494de43..327d8b5 100644
--- a/src/cobalt/content/icu/icudt56l/lang/et.res
+++ b/src/cobalt/content/icu/icudt56l/lang/et.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/eu.res b/src/cobalt/content/icu/icudt56l/lang/eu.res
index 8f4230f..1f0a3e5 100644
--- a/src/cobalt/content/icu/icudt56l/lang/eu.res
+++ b/src/cobalt/content/icu/icudt56l/lang/eu.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/fa.res b/src/cobalt/content/icu/icudt56l/lang/fa.res
index 56784ac..dc3a53a 100644
--- a/src/cobalt/content/icu/icudt56l/lang/fa.res
+++ b/src/cobalt/content/icu/icudt56l/lang/fa.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/fi.res b/src/cobalt/content/icu/icudt56l/lang/fi.res
index d57330d..1360e3d 100644
--- a/src/cobalt/content/icu/icudt56l/lang/fi.res
+++ b/src/cobalt/content/icu/icudt56l/lang/fi.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/fil.res b/src/cobalt/content/icu/icudt56l/lang/fil.res
index 307050b..7100f70 100644
--- a/src/cobalt/content/icu/icudt56l/lang/fil.res
+++ b/src/cobalt/content/icu/icudt56l/lang/fil.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/fo.res b/src/cobalt/content/icu/icudt56l/lang/fo.res
index 8f4230f..1f0a3e5 100644
--- a/src/cobalt/content/icu/icudt56l/lang/fo.res
+++ b/src/cobalt/content/icu/icudt56l/lang/fo.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/fr.res b/src/cobalt/content/icu/icudt56l/lang/fr.res
index 9c998d0..57b9b8c 100644
--- a/src/cobalt/content/icu/icudt56l/lang/fr.res
+++ b/src/cobalt/content/icu/icudt56l/lang/fr.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/ga.res b/src/cobalt/content/icu/icudt56l/lang/ga.res
index 8f4230f..1f0a3e5 100644
--- a/src/cobalt/content/icu/icudt56l/lang/ga.res
+++ b/src/cobalt/content/icu/icudt56l/lang/ga.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/gl.res b/src/cobalt/content/icu/icudt56l/lang/gl.res
index 8f4230f..1f0a3e5 100644
--- a/src/cobalt/content/icu/icudt56l/lang/gl.res
+++ b/src/cobalt/content/icu/icudt56l/lang/gl.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/gu.res b/src/cobalt/content/icu/icudt56l/lang/gu.res
index deb1e55..38b7e18 100644
--- a/src/cobalt/content/icu/icudt56l/lang/gu.res
+++ b/src/cobalt/content/icu/icudt56l/lang/gu.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/ha.res b/src/cobalt/content/icu/icudt56l/lang/ha.res
index 8f4230f..1f0a3e5 100644
--- a/src/cobalt/content/icu/icudt56l/lang/ha.res
+++ b/src/cobalt/content/icu/icudt56l/lang/ha.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/haw.res b/src/cobalt/content/icu/icudt56l/lang/haw.res
index 8f4230f..1f0a3e5 100644
--- a/src/cobalt/content/icu/icudt56l/lang/haw.res
+++ b/src/cobalt/content/icu/icudt56l/lang/haw.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/he.res b/src/cobalt/content/icu/icudt56l/lang/he.res
index 6c31aa3..b11652b 100644
--- a/src/cobalt/content/icu/icudt56l/lang/he.res
+++ b/src/cobalt/content/icu/icudt56l/lang/he.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/hi.res b/src/cobalt/content/icu/icudt56l/lang/hi.res
index 51a73d7..3e30df6 100644
--- a/src/cobalt/content/icu/icudt56l/lang/hi.res
+++ b/src/cobalt/content/icu/icudt56l/lang/hi.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/hr.res b/src/cobalt/content/icu/icudt56l/lang/hr.res
index 92cd698..6cae61d 100644
--- a/src/cobalt/content/icu/icudt56l/lang/hr.res
+++ b/src/cobalt/content/icu/icudt56l/lang/hr.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/hu.res b/src/cobalt/content/icu/icudt56l/lang/hu.res
index 2d8d2f0..9cf7fd8 100644
--- a/src/cobalt/content/icu/icudt56l/lang/hu.res
+++ b/src/cobalt/content/icu/icudt56l/lang/hu.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/hy.res b/src/cobalt/content/icu/icudt56l/lang/hy.res
index 8f4230f..1f0a3e5 100644
--- a/src/cobalt/content/icu/icudt56l/lang/hy.res
+++ b/src/cobalt/content/icu/icudt56l/lang/hy.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/id.res b/src/cobalt/content/icu/icudt56l/lang/id.res
index 6c93af1..1b3af59 100644
--- a/src/cobalt/content/icu/icudt56l/lang/id.res
+++ b/src/cobalt/content/icu/icudt56l/lang/id.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/ig.res b/src/cobalt/content/icu/icudt56l/lang/ig.res
index 8f4230f..1f0a3e5 100644
--- a/src/cobalt/content/icu/icudt56l/lang/ig.res
+++ b/src/cobalt/content/icu/icudt56l/lang/ig.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/in.res b/src/cobalt/content/icu/icudt56l/lang/in.res
index 919f78c..9a6ec30 100644
--- a/src/cobalt/content/icu/icudt56l/lang/in.res
+++ b/src/cobalt/content/icu/icudt56l/lang/in.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/is.res b/src/cobalt/content/icu/icudt56l/lang/is.res
index 8f4230f..1f0a3e5 100644
--- a/src/cobalt/content/icu/icudt56l/lang/is.res
+++ b/src/cobalt/content/icu/icudt56l/lang/is.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/it.res b/src/cobalt/content/icu/icudt56l/lang/it.res
index 83be75d..55cc520 100644
--- a/src/cobalt/content/icu/icudt56l/lang/it.res
+++ b/src/cobalt/content/icu/icudt56l/lang/it.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/iw.res b/src/cobalt/content/icu/icudt56l/lang/iw.res
index 5f83c12..2c0cbe7 100644
--- a/src/cobalt/content/icu/icudt56l/lang/iw.res
+++ b/src/cobalt/content/icu/icudt56l/lang/iw.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/ja.res b/src/cobalt/content/icu/icudt56l/lang/ja.res
index c60a5b8..0aa7d29 100644
--- a/src/cobalt/content/icu/icudt56l/lang/ja.res
+++ b/src/cobalt/content/icu/icudt56l/lang/ja.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/ka.res b/src/cobalt/content/icu/icudt56l/lang/ka.res
index 8f4230f..1f0a3e5 100644
--- a/src/cobalt/content/icu/icudt56l/lang/ka.res
+++ b/src/cobalt/content/icu/icudt56l/lang/ka.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/kk.res b/src/cobalt/content/icu/icudt56l/lang/kk.res
index 8f4230f..1f0a3e5 100644
--- a/src/cobalt/content/icu/icudt56l/lang/kk.res
+++ b/src/cobalt/content/icu/icudt56l/lang/kk.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/km.res b/src/cobalt/content/icu/icudt56l/lang/km.res
index 8f4230f..1f0a3e5 100644
--- a/src/cobalt/content/icu/icudt56l/lang/km.res
+++ b/src/cobalt/content/icu/icudt56l/lang/km.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/kn.res b/src/cobalt/content/icu/icudt56l/lang/kn.res
index 96df004..209967c 100644
--- a/src/cobalt/content/icu/icudt56l/lang/kn.res
+++ b/src/cobalt/content/icu/icudt56l/lang/kn.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/ko.res b/src/cobalt/content/icu/icudt56l/lang/ko.res
index 3dd51a4..b1841e6 100644
--- a/src/cobalt/content/icu/icudt56l/lang/ko.res
+++ b/src/cobalt/content/icu/icudt56l/lang/ko.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/ku.res b/src/cobalt/content/icu/icudt56l/lang/ku.res
index 8f4230f..1f0a3e5 100644
--- a/src/cobalt/content/icu/icudt56l/lang/ku.res
+++ b/src/cobalt/content/icu/icudt56l/lang/ku.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/ky.res b/src/cobalt/content/icu/icudt56l/lang/ky.res
index 8f4230f..1f0a3e5 100644
--- a/src/cobalt/content/icu/icudt56l/lang/ky.res
+++ b/src/cobalt/content/icu/icudt56l/lang/ky.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/lg.res b/src/cobalt/content/icu/icudt56l/lang/lg.res
index 8f4230f..1f0a3e5 100644
--- a/src/cobalt/content/icu/icudt56l/lang/lg.res
+++ b/src/cobalt/content/icu/icudt56l/lang/lg.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/ln.res b/src/cobalt/content/icu/icudt56l/lang/ln.res
index 8f4230f..1f0a3e5 100644
--- a/src/cobalt/content/icu/icudt56l/lang/ln.res
+++ b/src/cobalt/content/icu/icudt56l/lang/ln.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/lo.res b/src/cobalt/content/icu/icudt56l/lang/lo.res
index 8f4230f..1f0a3e5 100644
--- a/src/cobalt/content/icu/icudt56l/lang/lo.res
+++ b/src/cobalt/content/icu/icudt56l/lang/lo.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/lt.res b/src/cobalt/content/icu/icudt56l/lang/lt.res
index a717030..aa6b48a 100644
--- a/src/cobalt/content/icu/icudt56l/lang/lt.res
+++ b/src/cobalt/content/icu/icudt56l/lang/lt.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/lv.res b/src/cobalt/content/icu/icudt56l/lang/lv.res
index e2947f6..408d5f2 100644
--- a/src/cobalt/content/icu/icudt56l/lang/lv.res
+++ b/src/cobalt/content/icu/icudt56l/lang/lv.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/mfe.res b/src/cobalt/content/icu/icudt56l/lang/mfe.res
index 8f4230f..1f0a3e5 100644
--- a/src/cobalt/content/icu/icudt56l/lang/mfe.res
+++ b/src/cobalt/content/icu/icudt56l/lang/mfe.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/mg.res b/src/cobalt/content/icu/icudt56l/lang/mg.res
index 8f4230f..1f0a3e5 100644
--- a/src/cobalt/content/icu/icudt56l/lang/mg.res
+++ b/src/cobalt/content/icu/icudt56l/lang/mg.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/mk.res b/src/cobalt/content/icu/icudt56l/lang/mk.res
index 8f4230f..1f0a3e5 100644
--- a/src/cobalt/content/icu/icudt56l/lang/mk.res
+++ b/src/cobalt/content/icu/icudt56l/lang/mk.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/ml.res b/src/cobalt/content/icu/icudt56l/lang/ml.res
index 09b2da6..5e71641 100644
--- a/src/cobalt/content/icu/icudt56l/lang/ml.res
+++ b/src/cobalt/content/icu/icudt56l/lang/ml.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/mn.res b/src/cobalt/content/icu/icudt56l/lang/mn.res
index 8f4230f..1f0a3e5 100644
--- a/src/cobalt/content/icu/icudt56l/lang/mn.res
+++ b/src/cobalt/content/icu/icudt56l/lang/mn.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/mo.res b/src/cobalt/content/icu/icudt56l/lang/mo.res
index 74d43b4..d16ea71 100644
--- a/src/cobalt/content/icu/icudt56l/lang/mo.res
+++ b/src/cobalt/content/icu/icudt56l/lang/mo.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/mr.res b/src/cobalt/content/icu/icudt56l/lang/mr.res
index 2ad6158..553e75f 100644
--- a/src/cobalt/content/icu/icudt56l/lang/mr.res
+++ b/src/cobalt/content/icu/icudt56l/lang/mr.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/ms.res b/src/cobalt/content/icu/icudt56l/lang/ms.res
index 3b5c982..50e9141 100644
--- a/src/cobalt/content/icu/icudt56l/lang/ms.res
+++ b/src/cobalt/content/icu/icudt56l/lang/ms.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/mt.res b/src/cobalt/content/icu/icudt56l/lang/mt.res
index 8f4230f..1f0a3e5 100644
--- a/src/cobalt/content/icu/icudt56l/lang/mt.res
+++ b/src/cobalt/content/icu/icudt56l/lang/mt.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/my.res b/src/cobalt/content/icu/icudt56l/lang/my.res
index 8f4230f..1f0a3e5 100644
--- a/src/cobalt/content/icu/icudt56l/lang/my.res
+++ b/src/cobalt/content/icu/icudt56l/lang/my.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/nb.res b/src/cobalt/content/icu/icudt56l/lang/nb.res
index e24ee82..adc7586 100644
--- a/src/cobalt/content/icu/icudt56l/lang/nb.res
+++ b/src/cobalt/content/icu/icudt56l/lang/nb.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/ne.res b/src/cobalt/content/icu/icudt56l/lang/ne.res
index 8f4230f..1f0a3e5 100644
--- a/src/cobalt/content/icu/icudt56l/lang/ne.res
+++ b/src/cobalt/content/icu/icudt56l/lang/ne.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/nl.res b/src/cobalt/content/icu/icudt56l/lang/nl.res
index 72fef2d..6343007 100644
--- a/src/cobalt/content/icu/icudt56l/lang/nl.res
+++ b/src/cobalt/content/icu/icudt56l/lang/nl.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/nn.res b/src/cobalt/content/icu/icudt56l/lang/nn.res
index 8f4230f..1f0a3e5 100644
--- a/src/cobalt/content/icu/icudt56l/lang/nn.res
+++ b/src/cobalt/content/icu/icudt56l/lang/nn.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/no.res b/src/cobalt/content/icu/icudt56l/lang/no.res
index 35438a1..eec6664 100644
--- a/src/cobalt/content/icu/icudt56l/lang/no.res
+++ b/src/cobalt/content/icu/icudt56l/lang/no.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/nyn.res b/src/cobalt/content/icu/icudt56l/lang/nyn.res
index 8f4230f..1f0a3e5 100644
--- a/src/cobalt/content/icu/icudt56l/lang/nyn.res
+++ b/src/cobalt/content/icu/icudt56l/lang/nyn.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/om.res b/src/cobalt/content/icu/icudt56l/lang/om.res
index 8f4230f..1f0a3e5 100644
--- a/src/cobalt/content/icu/icudt56l/lang/om.res
+++ b/src/cobalt/content/icu/icudt56l/lang/om.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/or.res b/src/cobalt/content/icu/icudt56l/lang/or.res
index 8f4230f..1f0a3e5 100644
--- a/src/cobalt/content/icu/icudt56l/lang/or.res
+++ b/src/cobalt/content/icu/icudt56l/lang/or.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/pa.res b/src/cobalt/content/icu/icudt56l/lang/pa.res
index 8f4230f..1f0a3e5 100644
--- a/src/cobalt/content/icu/icudt56l/lang/pa.res
+++ b/src/cobalt/content/icu/icudt56l/lang/pa.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/pl.res b/src/cobalt/content/icu/icudt56l/lang/pl.res
index f686dc3..997b62f 100644
--- a/src/cobalt/content/icu/icudt56l/lang/pl.res
+++ b/src/cobalt/content/icu/icudt56l/lang/pl.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/pool.res b/src/cobalt/content/icu/icudt56l/lang/pool.res
index 097c8c2..dde2560 100644
--- a/src/cobalt/content/icu/icudt56l/lang/pool.res
+++ b/src/cobalt/content/icu/icudt56l/lang/pool.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/ps.res b/src/cobalt/content/icu/icudt56l/lang/ps.res
index 8f4230f..1f0a3e5 100644
--- a/src/cobalt/content/icu/icudt56l/lang/ps.res
+++ b/src/cobalt/content/icu/icudt56l/lang/ps.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/pt.res b/src/cobalt/content/icu/icudt56l/lang/pt.res
index 083238f..16f172a 100644
--- a/src/cobalt/content/icu/icudt56l/lang/pt.res
+++ b/src/cobalt/content/icu/icudt56l/lang/pt.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/pt_PT.res b/src/cobalt/content/icu/icudt56l/lang/pt_PT.res
index d99c30e..5ed28c4 100644
--- a/src/cobalt/content/icu/icudt56l/lang/pt_PT.res
+++ b/src/cobalt/content/icu/icudt56l/lang/pt_PT.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/rm.res b/src/cobalt/content/icu/icudt56l/lang/rm.res
index 8f4230f..1f0a3e5 100644
--- a/src/cobalt/content/icu/icudt56l/lang/rm.res
+++ b/src/cobalt/content/icu/icudt56l/lang/rm.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/rn.res b/src/cobalt/content/icu/icudt56l/lang/rn.res
index 8f4230f..1f0a3e5 100644
--- a/src/cobalt/content/icu/icudt56l/lang/rn.res
+++ b/src/cobalt/content/icu/icudt56l/lang/rn.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/ro.res b/src/cobalt/content/icu/icudt56l/lang/ro.res
index 7d60a43..d8b5672 100644
--- a/src/cobalt/content/icu/icudt56l/lang/ro.res
+++ b/src/cobalt/content/icu/icudt56l/lang/ro.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/ro_MD.res b/src/cobalt/content/icu/icudt56l/lang/ro_MD.res
index 9fb8d50..e911239 100644
--- a/src/cobalt/content/icu/icudt56l/lang/ro_MD.res
+++ b/src/cobalt/content/icu/icudt56l/lang/ro_MD.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/root.res b/src/cobalt/content/icu/icudt56l/lang/root.res
index 1f511a2..65785f7 100644
--- a/src/cobalt/content/icu/icudt56l/lang/root.res
+++ b/src/cobalt/content/icu/icudt56l/lang/root.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/ru.res b/src/cobalt/content/icu/icudt56l/lang/ru.res
index e533727..1638295 100644
--- a/src/cobalt/content/icu/icudt56l/lang/ru.res
+++ b/src/cobalt/content/icu/icudt56l/lang/ru.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/rw.res b/src/cobalt/content/icu/icudt56l/lang/rw.res
index 8f4230f..1f0a3e5 100644
--- a/src/cobalt/content/icu/icudt56l/lang/rw.res
+++ b/src/cobalt/content/icu/icudt56l/lang/rw.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/sh.res b/src/cobalt/content/icu/icudt56l/lang/sh.res
index c500249..e3daa0d 100644
--- a/src/cobalt/content/icu/icudt56l/lang/sh.res
+++ b/src/cobalt/content/icu/icudt56l/lang/sh.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/si.res b/src/cobalt/content/icu/icudt56l/lang/si.res
index 8f4230f..1f0a3e5 100644
--- a/src/cobalt/content/icu/icudt56l/lang/si.res
+++ b/src/cobalt/content/icu/icudt56l/lang/si.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/sk.res b/src/cobalt/content/icu/icudt56l/lang/sk.res
index b211109..f1c888c 100644
--- a/src/cobalt/content/icu/icudt56l/lang/sk.res
+++ b/src/cobalt/content/icu/icudt56l/lang/sk.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/sl.res b/src/cobalt/content/icu/icudt56l/lang/sl.res
index 0af3682..b06ac68 100644
--- a/src/cobalt/content/icu/icudt56l/lang/sl.res
+++ b/src/cobalt/content/icu/icudt56l/lang/sl.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/sn.res b/src/cobalt/content/icu/icudt56l/lang/sn.res
index 8f4230f..1f0a3e5 100644
--- a/src/cobalt/content/icu/icudt56l/lang/sn.res
+++ b/src/cobalt/content/icu/icudt56l/lang/sn.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/so.res b/src/cobalt/content/icu/icudt56l/lang/so.res
index 8f4230f..1f0a3e5 100644
--- a/src/cobalt/content/icu/icudt56l/lang/so.res
+++ b/src/cobalt/content/icu/icudt56l/lang/so.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/sq.res b/src/cobalt/content/icu/icudt56l/lang/sq.res
index 8f4230f..1f0a3e5 100644
--- a/src/cobalt/content/icu/icudt56l/lang/sq.res
+++ b/src/cobalt/content/icu/icudt56l/lang/sq.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/sr.res b/src/cobalt/content/icu/icudt56l/lang/sr.res
index d3e4fc2..4243fe1 100644
--- a/src/cobalt/content/icu/icudt56l/lang/sr.res
+++ b/src/cobalt/content/icu/icudt56l/lang/sr.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/sr_Latn.res b/src/cobalt/content/icu/icudt56l/lang/sr_Latn.res
index 4ed265a..9e0bea3 100644
--- a/src/cobalt/content/icu/icudt56l/lang/sr_Latn.res
+++ b/src/cobalt/content/icu/icudt56l/lang/sr_Latn.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/sv.res b/src/cobalt/content/icu/icudt56l/lang/sv.res
index 7af73bb..b89e78f 100644
--- a/src/cobalt/content/icu/icudt56l/lang/sv.res
+++ b/src/cobalt/content/icu/icudt56l/lang/sv.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/sw.res b/src/cobalt/content/icu/icudt56l/lang/sw.res
index e084dd3..d339f7d 100644
--- a/src/cobalt/content/icu/icudt56l/lang/sw.res
+++ b/src/cobalt/content/icu/icudt56l/lang/sw.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/ta.res b/src/cobalt/content/icu/icudt56l/lang/ta.res
index 34e8d23..24614ec 100644
--- a/src/cobalt/content/icu/icudt56l/lang/ta.res
+++ b/src/cobalt/content/icu/icudt56l/lang/ta.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/te.res b/src/cobalt/content/icu/icudt56l/lang/te.res
index db1ac43..1d32c96 100644
--- a/src/cobalt/content/icu/icudt56l/lang/te.res
+++ b/src/cobalt/content/icu/icudt56l/lang/te.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/tg.res b/src/cobalt/content/icu/icudt56l/lang/tg.res
index 8f4230f..1f0a3e5 100644
--- a/src/cobalt/content/icu/icudt56l/lang/tg.res
+++ b/src/cobalt/content/icu/icudt56l/lang/tg.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/th.res b/src/cobalt/content/icu/icudt56l/lang/th.res
index e67284e..effbecc 100644
--- a/src/cobalt/content/icu/icudt56l/lang/th.res
+++ b/src/cobalt/content/icu/icudt56l/lang/th.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/ti.res b/src/cobalt/content/icu/icudt56l/lang/ti.res
index 8f4230f..1f0a3e5 100644
--- a/src/cobalt/content/icu/icudt56l/lang/ti.res
+++ b/src/cobalt/content/icu/icudt56l/lang/ti.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/tl.res b/src/cobalt/content/icu/icudt56l/lang/tl.res
index ea58c63..cdcff68 100644
--- a/src/cobalt/content/icu/icudt56l/lang/tl.res
+++ b/src/cobalt/content/icu/icudt56l/lang/tl.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/to.res b/src/cobalt/content/icu/icudt56l/lang/to.res
index 8f4230f..1f0a3e5 100644
--- a/src/cobalt/content/icu/icudt56l/lang/to.res
+++ b/src/cobalt/content/icu/icudt56l/lang/to.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/tr.res b/src/cobalt/content/icu/icudt56l/lang/tr.res
index 0f21256..d077ac8 100644
--- a/src/cobalt/content/icu/icudt56l/lang/tr.res
+++ b/src/cobalt/content/icu/icudt56l/lang/tr.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/uk.res b/src/cobalt/content/icu/icudt56l/lang/uk.res
index 35551bf..b099afd 100644
--- a/src/cobalt/content/icu/icudt56l/lang/uk.res
+++ b/src/cobalt/content/icu/icudt56l/lang/uk.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/ur.res b/src/cobalt/content/icu/icudt56l/lang/ur.res
index 8f4230f..1f0a3e5 100644
--- a/src/cobalt/content/icu/icudt56l/lang/ur.res
+++ b/src/cobalt/content/icu/icudt56l/lang/ur.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/uz.res b/src/cobalt/content/icu/icudt56l/lang/uz.res
index 8f4230f..1f0a3e5 100644
--- a/src/cobalt/content/icu/icudt56l/lang/uz.res
+++ b/src/cobalt/content/icu/icudt56l/lang/uz.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/vi.res b/src/cobalt/content/icu/icudt56l/lang/vi.res
index 980e02c..98aa90d 100644
--- a/src/cobalt/content/icu/icudt56l/lang/vi.res
+++ b/src/cobalt/content/icu/icudt56l/lang/vi.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/wa.res b/src/cobalt/content/icu/icudt56l/lang/wa.res
index 8f4230f..1f0a3e5 100644
--- a/src/cobalt/content/icu/icudt56l/lang/wa.res
+++ b/src/cobalt/content/icu/icudt56l/lang/wa.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/yo.res b/src/cobalt/content/icu/icudt56l/lang/yo.res
index 8f4230f..1f0a3e5 100644
--- a/src/cobalt/content/icu/icudt56l/lang/yo.res
+++ b/src/cobalt/content/icu/icudt56l/lang/yo.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/zh.res b/src/cobalt/content/icu/icudt56l/lang/zh.res
index f58391f..9dbab21 100644
--- a/src/cobalt/content/icu/icudt56l/lang/zh.res
+++ b/src/cobalt/content/icu/icudt56l/lang/zh.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/zh_CN.res b/src/cobalt/content/icu/icudt56l/lang/zh_CN.res
index a7ccb03..d65558b 100644
--- a/src/cobalt/content/icu/icudt56l/lang/zh_CN.res
+++ b/src/cobalt/content/icu/icudt56l/lang/zh_CN.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/zh_HK.res b/src/cobalt/content/icu/icudt56l/lang/zh_HK.res
index 7991f52..bc307bb 100644
--- a/src/cobalt/content/icu/icudt56l/lang/zh_HK.res
+++ b/src/cobalt/content/icu/icudt56l/lang/zh_HK.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/zh_Hans.res b/src/cobalt/content/icu/icudt56l/lang/zh_Hans.res
index 2b89ea3..15f949b 100644
--- a/src/cobalt/content/icu/icudt56l/lang/zh_Hans.res
+++ b/src/cobalt/content/icu/icudt56l/lang/zh_Hans.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/zh_Hans_CN.res b/src/cobalt/content/icu/icudt56l/lang/zh_Hans_CN.res
index 9fb8d50..e911239 100644
--- a/src/cobalt/content/icu/icudt56l/lang/zh_Hans_CN.res
+++ b/src/cobalt/content/icu/icudt56l/lang/zh_Hans_CN.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/zh_Hans_SG.res b/src/cobalt/content/icu/icudt56l/lang/zh_Hans_SG.res
index 9fb8d50..e911239 100644
--- a/src/cobalt/content/icu/icudt56l/lang/zh_Hans_SG.res
+++ b/src/cobalt/content/icu/icudt56l/lang/zh_Hans_SG.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/zh_Hant.res b/src/cobalt/content/icu/icudt56l/lang/zh_Hant.res
index 0865fa5..eb74632 100644
--- a/src/cobalt/content/icu/icudt56l/lang/zh_Hant.res
+++ b/src/cobalt/content/icu/icudt56l/lang/zh_Hant.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/zh_Hant_HK.res b/src/cobalt/content/icu/icudt56l/lang/zh_Hant_HK.res
index 11c1f97..0a152c4 100644
--- a/src/cobalt/content/icu/icudt56l/lang/zh_Hant_HK.res
+++ b/src/cobalt/content/icu/icudt56l/lang/zh_Hant_HK.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/zh_Hant_TW.res b/src/cobalt/content/icu/icudt56l/lang/zh_Hant_TW.res
index 9fb8d50..e911239 100644
--- a/src/cobalt/content/icu/icudt56l/lang/zh_Hant_TW.res
+++ b/src/cobalt/content/icu/icudt56l/lang/zh_Hant_TW.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/zh_SG.res b/src/cobalt/content/icu/icudt56l/lang/zh_SG.res
index 85200e4..e40ce2c 100644
--- a/src/cobalt/content/icu/icudt56l/lang/zh_SG.res
+++ b/src/cobalt/content/icu/icudt56l/lang/zh_SG.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/zh_TW.res b/src/cobalt/content/icu/icudt56l/lang/zh_TW.res
index 430004b..6436069 100644
--- a/src/cobalt/content/icu/icudt56l/lang/zh_TW.res
+++ b/src/cobalt/content/icu/icudt56l/lang/zh_TW.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lang/zu.res b/src/cobalt/content/icu/icudt56l/lang/zu.res
index 8f4230f..1f0a3e5 100644
--- a/src/cobalt/content/icu/icudt56l/lang/zu.res
+++ b/src/cobalt/content/icu/icudt56l/lang/zu.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lg.res b/src/cobalt/content/icu/icudt56l/lg.res
index 57facdd..f70868d 100644
--- a/src/cobalt/content/icu/icudt56l/lg.res
+++ b/src/cobalt/content/icu/icudt56l/lg.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/ln.res b/src/cobalt/content/icu/icudt56l/ln.res
index 2778284..7f49c5e 100644
--- a/src/cobalt/content/icu/icudt56l/ln.res
+++ b/src/cobalt/content/icu/icudt56l/ln.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lo.res b/src/cobalt/content/icu/icudt56l/lo.res
index 6157798..282f73f 100644
--- a/src/cobalt/content/icu/icudt56l/lo.res
+++ b/src/cobalt/content/icu/icudt56l/lo.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lt.res b/src/cobalt/content/icu/icudt56l/lt.res
index 00a663c..c3ab11b 100644
--- a/src/cobalt/content/icu/icudt56l/lt.res
+++ b/src/cobalt/content/icu/icudt56l/lt.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/lv.res b/src/cobalt/content/icu/icudt56l/lv.res
index 1534810..a18464d 100644
--- a/src/cobalt/content/icu/icudt56l/lv.res
+++ b/src/cobalt/content/icu/icudt56l/lv.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/mfe.res b/src/cobalt/content/icu/icudt56l/mfe.res
index 9ad9a6c..b01f52f 100644
--- a/src/cobalt/content/icu/icudt56l/mfe.res
+++ b/src/cobalt/content/icu/icudt56l/mfe.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/mg.res b/src/cobalt/content/icu/icudt56l/mg.res
index 320a39b..a716314 100644
--- a/src/cobalt/content/icu/icudt56l/mg.res
+++ b/src/cobalt/content/icu/icudt56l/mg.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/mk.res b/src/cobalt/content/icu/icudt56l/mk.res
index dc18591..16d876e 100644
--- a/src/cobalt/content/icu/icudt56l/mk.res
+++ b/src/cobalt/content/icu/icudt56l/mk.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/ml.res b/src/cobalt/content/icu/icudt56l/ml.res
index 955c7c1..412ba51 100644
--- a/src/cobalt/content/icu/icudt56l/ml.res
+++ b/src/cobalt/content/icu/icudt56l/ml.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/mn.res b/src/cobalt/content/icu/icudt56l/mn.res
index 62734c8..4eaf0c0 100644
--- a/src/cobalt/content/icu/icudt56l/mn.res
+++ b/src/cobalt/content/icu/icudt56l/mn.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/mo.res b/src/cobalt/content/icu/icudt56l/mo.res
index 7bf1b78..52a5358 100644
--- a/src/cobalt/content/icu/icudt56l/mo.res
+++ b/src/cobalt/content/icu/icudt56l/mo.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/mr.res b/src/cobalt/content/icu/icudt56l/mr.res
index 62c9810..b512a48 100644
--- a/src/cobalt/content/icu/icudt56l/mr.res
+++ b/src/cobalt/content/icu/icudt56l/mr.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/ms.res b/src/cobalt/content/icu/icudt56l/ms.res
index 4487127..f079f3b 100644
--- a/src/cobalt/content/icu/icudt56l/ms.res
+++ b/src/cobalt/content/icu/icudt56l/ms.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/mt.res b/src/cobalt/content/icu/icudt56l/mt.res
index 8321dec..fbbcb37 100644
--- a/src/cobalt/content/icu/icudt56l/mt.res
+++ b/src/cobalt/content/icu/icudt56l/mt.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/my.res b/src/cobalt/content/icu/icudt56l/my.res
index 0bffba5..a940752 100644
--- a/src/cobalt/content/icu/icudt56l/my.res
+++ b/src/cobalt/content/icu/icudt56l/my.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/nb.res b/src/cobalt/content/icu/icudt56l/nb.res
index 0f11d46..1e41d8a 100644
--- a/src/cobalt/content/icu/icudt56l/nb.res
+++ b/src/cobalt/content/icu/icudt56l/nb.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/ne.res b/src/cobalt/content/icu/icudt56l/ne.res
index dbc62bc..ca97326 100644
--- a/src/cobalt/content/icu/icudt56l/ne.res
+++ b/src/cobalt/content/icu/icudt56l/ne.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/nl.res b/src/cobalt/content/icu/icudt56l/nl.res
index 48ae733..f473748 100644
--- a/src/cobalt/content/icu/icudt56l/nl.res
+++ b/src/cobalt/content/icu/icudt56l/nl.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/nn.res b/src/cobalt/content/icu/icudt56l/nn.res
index 5c5db79..9ca09d0 100644
--- a/src/cobalt/content/icu/icudt56l/nn.res
+++ b/src/cobalt/content/icu/icudt56l/nn.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/no.res b/src/cobalt/content/icu/icudt56l/no.res
index 652e722..95b72f1 100644
--- a/src/cobalt/content/icu/icudt56l/no.res
+++ b/src/cobalt/content/icu/icudt56l/no.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/nyn.res b/src/cobalt/content/icu/icudt56l/nyn.res
index dd92b68..14c4a68 100644
--- a/src/cobalt/content/icu/icudt56l/nyn.res
+++ b/src/cobalt/content/icu/icudt56l/nyn.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/om.res b/src/cobalt/content/icu/icudt56l/om.res
index dd92b68..14c4a68 100644
--- a/src/cobalt/content/icu/icudt56l/om.res
+++ b/src/cobalt/content/icu/icudt56l/om.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/or.res b/src/cobalt/content/icu/icudt56l/or.res
index 8708b9e..f2cca67 100644
--- a/src/cobalt/content/icu/icudt56l/or.res
+++ b/src/cobalt/content/icu/icudt56l/or.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/pa.res b/src/cobalt/content/icu/icudt56l/pa.res
index 7a310e0..b1453eb 100644
--- a/src/cobalt/content/icu/icudt56l/pa.res
+++ b/src/cobalt/content/icu/icudt56l/pa.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/pl.res b/src/cobalt/content/icu/icudt56l/pl.res
index 2cd9f01..a25c258 100644
--- a/src/cobalt/content/icu/icudt56l/pl.res
+++ b/src/cobalt/content/icu/icudt56l/pl.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/pool.res b/src/cobalt/content/icu/icudt56l/pool.res
index 923a6cb..654a03b 100644
--- a/src/cobalt/content/icu/icudt56l/pool.res
+++ b/src/cobalt/content/icu/icudt56l/pool.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/ps.res b/src/cobalt/content/icu/icudt56l/ps.res
index 7f814f8..b715fc2 100644
--- a/src/cobalt/content/icu/icudt56l/ps.res
+++ b/src/cobalt/content/icu/icudt56l/ps.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/pt.res b/src/cobalt/content/icu/icudt56l/pt.res
index 6abcb75..0055dd7 100644
--- a/src/cobalt/content/icu/icudt56l/pt.res
+++ b/src/cobalt/content/icu/icudt56l/pt.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/pt_BR.res b/src/cobalt/content/icu/icudt56l/pt_BR.res
index 008e4b7..d0ddba1 100644
--- a/src/cobalt/content/icu/icudt56l/pt_BR.res
+++ b/src/cobalt/content/icu/icudt56l/pt_BR.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/pt_PT.res b/src/cobalt/content/icu/icudt56l/pt_PT.res
index 76ca66f..f1a5807 100644
--- a/src/cobalt/content/icu/icudt56l/pt_PT.res
+++ b/src/cobalt/content/icu/icudt56l/pt_PT.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/region/en.res b/src/cobalt/content/icu/icudt56l/region/en.res
index 967b2a3..bc9a049 100644
--- a/src/cobalt/content/icu/icudt56l/region/en.res
+++ b/src/cobalt/content/icu/icudt56l/region/en.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/region/pool.res b/src/cobalt/content/icu/icudt56l/region/pool.res
index 0beeb3a..c8b3a66 100644
--- a/src/cobalt/content/icu/icudt56l/region/pool.res
+++ b/src/cobalt/content/icu/icudt56l/region/pool.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/region/root.res b/src/cobalt/content/icu/icudt56l/region/root.res
index 72cad82..f7ec23c 100644
--- a/src/cobalt/content/icu/icudt56l/region/root.res
+++ b/src/cobalt/content/icu/icudt56l/region/root.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/rm.res b/src/cobalt/content/icu/icudt56l/rm.res
index 8d81b3b..9f468cc 100644
--- a/src/cobalt/content/icu/icudt56l/rm.res
+++ b/src/cobalt/content/icu/icudt56l/rm.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/rn.res b/src/cobalt/content/icu/icudt56l/rn.res
index dd92b68..14c4a68 100644
--- a/src/cobalt/content/icu/icudt56l/rn.res
+++ b/src/cobalt/content/icu/icudt56l/rn.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/ro.res b/src/cobalt/content/icu/icudt56l/ro.res
index df484c6..64953d1 100644
--- a/src/cobalt/content/icu/icudt56l/ro.res
+++ b/src/cobalt/content/icu/icudt56l/ro.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/ro_MD.res b/src/cobalt/content/icu/icudt56l/ro_MD.res
index 8f32770..8a95d37 100644
--- a/src/cobalt/content/icu/icudt56l/ro_MD.res
+++ b/src/cobalt/content/icu/icudt56l/ro_MD.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/root.res b/src/cobalt/content/icu/icudt56l/root.res
index f9dd09b..749557c 100644
--- a/src/cobalt/content/icu/icudt56l/root.res
+++ b/src/cobalt/content/icu/icudt56l/root.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/ru.res b/src/cobalt/content/icu/icudt56l/ru.res
index f92eea0..4797943 100644
--- a/src/cobalt/content/icu/icudt56l/ru.res
+++ b/src/cobalt/content/icu/icudt56l/ru.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/rw.res b/src/cobalt/content/icu/icudt56l/rw.res
index dd92b68..14c4a68 100644
--- a/src/cobalt/content/icu/icudt56l/rw.res
+++ b/src/cobalt/content/icu/icudt56l/rw.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/sh.res b/src/cobalt/content/icu/icudt56l/sh.res
index d4f746c..064761b 100644
--- a/src/cobalt/content/icu/icudt56l/sh.res
+++ b/src/cobalt/content/icu/icudt56l/sh.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/si.res b/src/cobalt/content/icu/icudt56l/si.res
index 1e448b7..854a983 100644
--- a/src/cobalt/content/icu/icudt56l/si.res
+++ b/src/cobalt/content/icu/icudt56l/si.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/sk.res b/src/cobalt/content/icu/icudt56l/sk.res
index 77824af..26b057b 100644
--- a/src/cobalt/content/icu/icudt56l/sk.res
+++ b/src/cobalt/content/icu/icudt56l/sk.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/sl.res b/src/cobalt/content/icu/icudt56l/sl.res
index cdd325e..d1fa5b1 100644
--- a/src/cobalt/content/icu/icudt56l/sl.res
+++ b/src/cobalt/content/icu/icudt56l/sl.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/sn.res b/src/cobalt/content/icu/icudt56l/sn.res
index b6e4440..9876284 100644
--- a/src/cobalt/content/icu/icudt56l/sn.res
+++ b/src/cobalt/content/icu/icudt56l/sn.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/so.res b/src/cobalt/content/icu/icudt56l/so.res
index dd92b68..14c4a68 100644
--- a/src/cobalt/content/icu/icudt56l/so.res
+++ b/src/cobalt/content/icu/icudt56l/so.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/sq.res b/src/cobalt/content/icu/icudt56l/sq.res
index 37804c4..2f60b9e 100644
--- a/src/cobalt/content/icu/icudt56l/sq.res
+++ b/src/cobalt/content/icu/icudt56l/sq.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/sr.res b/src/cobalt/content/icu/icudt56l/sr.res
index 4ca52cb..d44d4b0 100644
--- a/src/cobalt/content/icu/icudt56l/sr.res
+++ b/src/cobalt/content/icu/icudt56l/sr.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/sr_Latn.res b/src/cobalt/content/icu/icudt56l/sr_Latn.res
index 0d22fb6..00a544f 100644
--- a/src/cobalt/content/icu/icudt56l/sr_Latn.res
+++ b/src/cobalt/content/icu/icudt56l/sr_Latn.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/sv.res b/src/cobalt/content/icu/icudt56l/sv.res
index 35911a5..d152a55 100644
--- a/src/cobalt/content/icu/icudt56l/sv.res
+++ b/src/cobalt/content/icu/icudt56l/sv.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/sw.res b/src/cobalt/content/icu/icudt56l/sw.res
index f822726..e3fe8e8 100644
--- a/src/cobalt/content/icu/icudt56l/sw.res
+++ b/src/cobalt/content/icu/icudt56l/sw.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/ta.res b/src/cobalt/content/icu/icudt56l/ta.res
index 44e85af..533e622 100644
--- a/src/cobalt/content/icu/icudt56l/ta.res
+++ b/src/cobalt/content/icu/icudt56l/ta.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/te.res b/src/cobalt/content/icu/icudt56l/te.res
index 2042605..5a9230b 100644
--- a/src/cobalt/content/icu/icudt56l/te.res
+++ b/src/cobalt/content/icu/icudt56l/te.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/tg.res b/src/cobalt/content/icu/icudt56l/tg.res
index 0211bfe..f567bf3 100644
--- a/src/cobalt/content/icu/icudt56l/tg.res
+++ b/src/cobalt/content/icu/icudt56l/tg.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/th.res b/src/cobalt/content/icu/icudt56l/th.res
index dc226b5..5cab461 100644
--- a/src/cobalt/content/icu/icudt56l/th.res
+++ b/src/cobalt/content/icu/icudt56l/th.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/ti.res b/src/cobalt/content/icu/icudt56l/ti.res
index 397d15f..5199c3d 100644
--- a/src/cobalt/content/icu/icudt56l/ti.res
+++ b/src/cobalt/content/icu/icudt56l/ti.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/tl.res b/src/cobalt/content/icu/icudt56l/tl.res
index c65b0a3..d6944ac 100644
--- a/src/cobalt/content/icu/icudt56l/tl.res
+++ b/src/cobalt/content/icu/icudt56l/tl.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/to.res b/src/cobalt/content/icu/icudt56l/to.res
index db95267..ab19db3 100644
--- a/src/cobalt/content/icu/icudt56l/to.res
+++ b/src/cobalt/content/icu/icudt56l/to.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/tr.res b/src/cobalt/content/icu/icudt56l/tr.res
index 4c2a4ed..037b9f0 100644
--- a/src/cobalt/content/icu/icudt56l/tr.res
+++ b/src/cobalt/content/icu/icudt56l/tr.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/translit/root.res b/src/cobalt/content/icu/icudt56l/translit/root.res
index 0686735..ec75cab 100644
--- a/src/cobalt/content/icu/icudt56l/translit/root.res
+++ b/src/cobalt/content/icu/icudt56l/translit/root.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/uk.res b/src/cobalt/content/icu/icudt56l/uk.res
index 0c87ee3..c408f0d 100644
--- a/src/cobalt/content/icu/icudt56l/uk.res
+++ b/src/cobalt/content/icu/icudt56l/uk.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/unit/am.res b/src/cobalt/content/icu/icudt56l/unit/am.res
index dbf8c3e..6fc7821 100644
--- a/src/cobalt/content/icu/icudt56l/unit/am.res
+++ b/src/cobalt/content/icu/icudt56l/unit/am.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/unit/ar.res b/src/cobalt/content/icu/icudt56l/unit/ar.res
index 9b12292..e2aac94 100644
--- a/src/cobalt/content/icu/icudt56l/unit/ar.res
+++ b/src/cobalt/content/icu/icudt56l/unit/ar.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/unit/bg.res b/src/cobalt/content/icu/icudt56l/unit/bg.res
index 6e2c48e..a1c9cda 100644
--- a/src/cobalt/content/icu/icudt56l/unit/bg.res
+++ b/src/cobalt/content/icu/icudt56l/unit/bg.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/unit/bn.res b/src/cobalt/content/icu/icudt56l/unit/bn.res
index 892495e..a212216 100644
--- a/src/cobalt/content/icu/icudt56l/unit/bn.res
+++ b/src/cobalt/content/icu/icudt56l/unit/bn.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/unit/ca.res b/src/cobalt/content/icu/icudt56l/unit/ca.res
index d95bf24..e842067 100644
--- a/src/cobalt/content/icu/icudt56l/unit/ca.res
+++ b/src/cobalt/content/icu/icudt56l/unit/ca.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/unit/cs.res b/src/cobalt/content/icu/icudt56l/unit/cs.res
index 1fe2bd2..64f2993 100644
--- a/src/cobalt/content/icu/icudt56l/unit/cs.res
+++ b/src/cobalt/content/icu/icudt56l/unit/cs.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/unit/da.res b/src/cobalt/content/icu/icudt56l/unit/da.res
index ab70915..ed1b59f 100644
--- a/src/cobalt/content/icu/icudt56l/unit/da.res
+++ b/src/cobalt/content/icu/icudt56l/unit/da.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/unit/de.res b/src/cobalt/content/icu/icudt56l/unit/de.res
index d9e899a..8208373 100644
--- a/src/cobalt/content/icu/icudt56l/unit/de.res
+++ b/src/cobalt/content/icu/icudt56l/unit/de.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/unit/de_CH.res b/src/cobalt/content/icu/icudt56l/unit/de_CH.res
index ce92e01..6eea893 100644
--- a/src/cobalt/content/icu/icudt56l/unit/de_CH.res
+++ b/src/cobalt/content/icu/icudt56l/unit/de_CH.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/unit/el.res b/src/cobalt/content/icu/icudt56l/unit/el.res
index cef1fc9..6dd02a8 100644
--- a/src/cobalt/content/icu/icudt56l/unit/el.res
+++ b/src/cobalt/content/icu/icudt56l/unit/el.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/unit/en.res b/src/cobalt/content/icu/icudt56l/unit/en.res
index c0e9641..dd313d6 100644
--- a/src/cobalt/content/icu/icudt56l/unit/en.res
+++ b/src/cobalt/content/icu/icudt56l/unit/en.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/unit/en_001.res b/src/cobalt/content/icu/icudt56l/unit/en_001.res
index 0aaea4c..4e099c3 100644
--- a/src/cobalt/content/icu/icudt56l/unit/en_001.res
+++ b/src/cobalt/content/icu/icudt56l/unit/en_001.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/unit/en_150.res b/src/cobalt/content/icu/icudt56l/unit/en_150.res
index 7311a35..c7f45f2 100644
--- a/src/cobalt/content/icu/icudt56l/unit/en_150.res
+++ b/src/cobalt/content/icu/icudt56l/unit/en_150.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/unit/en_AU.res b/src/cobalt/content/icu/icudt56l/unit/en_AU.res
index 6861b55..48a18cf 100644
--- a/src/cobalt/content/icu/icudt56l/unit/en_AU.res
+++ b/src/cobalt/content/icu/icudt56l/unit/en_AU.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/unit/en_CA.res b/src/cobalt/content/icu/icudt56l/unit/en_CA.res
index a992b66..dd233bc 100644
--- a/src/cobalt/content/icu/icudt56l/unit/en_CA.res
+++ b/src/cobalt/content/icu/icudt56l/unit/en_CA.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/unit/en_GB.res b/src/cobalt/content/icu/icudt56l/unit/en_GB.res
index a251b48..7e38b76 100644
--- a/src/cobalt/content/icu/icudt56l/unit/en_GB.res
+++ b/src/cobalt/content/icu/icudt56l/unit/en_GB.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/unit/en_IN.res b/src/cobalt/content/icu/icudt56l/unit/en_IN.res
index 403d14d..9bdaf65 100644
--- a/src/cobalt/content/icu/icudt56l/unit/en_IN.res
+++ b/src/cobalt/content/icu/icudt56l/unit/en_IN.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/unit/en_NZ.res b/src/cobalt/content/icu/icudt56l/unit/en_NZ.res
index 403d14d..9bdaf65 100644
--- a/src/cobalt/content/icu/icudt56l/unit/en_NZ.res
+++ b/src/cobalt/content/icu/icudt56l/unit/en_NZ.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/unit/en_ZA.res b/src/cobalt/content/icu/icudt56l/unit/en_ZA.res
index 403d14d..9bdaf65 100644
--- a/src/cobalt/content/icu/icudt56l/unit/en_ZA.res
+++ b/src/cobalt/content/icu/icudt56l/unit/en_ZA.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/unit/es.res b/src/cobalt/content/icu/icudt56l/unit/es.res
index 0e05256..3e9e9d4 100644
--- a/src/cobalt/content/icu/icudt56l/unit/es.res
+++ b/src/cobalt/content/icu/icudt56l/unit/es.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/unit/es_419.res b/src/cobalt/content/icu/icudt56l/unit/es_419.res
index f5550ca..b91698d 100644
--- a/src/cobalt/content/icu/icudt56l/unit/es_419.res
+++ b/src/cobalt/content/icu/icudt56l/unit/es_419.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/unit/es_AR.res b/src/cobalt/content/icu/icudt56l/unit/es_AR.res
index b45c868..7513b45 100644
--- a/src/cobalt/content/icu/icudt56l/unit/es_AR.res
+++ b/src/cobalt/content/icu/icudt56l/unit/es_AR.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/unit/es_MX.res b/src/cobalt/content/icu/icudt56l/unit/es_MX.res
index 427e5f5..711b319 100644
--- a/src/cobalt/content/icu/icudt56l/unit/es_MX.res
+++ b/src/cobalt/content/icu/icudt56l/unit/es_MX.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/unit/es_US.res b/src/cobalt/content/icu/icudt56l/unit/es_US.res
index 9b8944a..1562007 100644
--- a/src/cobalt/content/icu/icudt56l/unit/es_US.res
+++ b/src/cobalt/content/icu/icudt56l/unit/es_US.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/unit/et.res b/src/cobalt/content/icu/icudt56l/unit/et.res
index d237538..e054a78 100644
--- a/src/cobalt/content/icu/icudt56l/unit/et.res
+++ b/src/cobalt/content/icu/icudt56l/unit/et.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/unit/fa.res b/src/cobalt/content/icu/icudt56l/unit/fa.res
index b701d58..e2682bc 100644
--- a/src/cobalt/content/icu/icudt56l/unit/fa.res
+++ b/src/cobalt/content/icu/icudt56l/unit/fa.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/unit/fi.res b/src/cobalt/content/icu/icudt56l/unit/fi.res
index dbf5230..80bc2a6 100644
--- a/src/cobalt/content/icu/icudt56l/unit/fi.res
+++ b/src/cobalt/content/icu/icudt56l/unit/fi.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/unit/fil.res b/src/cobalt/content/icu/icudt56l/unit/fil.res
index bf058da..9e033a5 100644
--- a/src/cobalt/content/icu/icudt56l/unit/fil.res
+++ b/src/cobalt/content/icu/icudt56l/unit/fil.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/unit/fr.res b/src/cobalt/content/icu/icudt56l/unit/fr.res
index ab42c66..a55f106 100644
--- a/src/cobalt/content/icu/icudt56l/unit/fr.res
+++ b/src/cobalt/content/icu/icudt56l/unit/fr.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/unit/fr_CA.res b/src/cobalt/content/icu/icudt56l/unit/fr_CA.res
index 02360e7..8beacd0 100644
--- a/src/cobalt/content/icu/icudt56l/unit/fr_CA.res
+++ b/src/cobalt/content/icu/icudt56l/unit/fr_CA.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/unit/gu.res b/src/cobalt/content/icu/icudt56l/unit/gu.res
index 509ed57..b01ba42 100644
--- a/src/cobalt/content/icu/icudt56l/unit/gu.res
+++ b/src/cobalt/content/icu/icudt56l/unit/gu.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/unit/he.res b/src/cobalt/content/icu/icudt56l/unit/he.res
index 954f991..ba86247 100644
--- a/src/cobalt/content/icu/icudt56l/unit/he.res
+++ b/src/cobalt/content/icu/icudt56l/unit/he.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/unit/hi.res b/src/cobalt/content/icu/icudt56l/unit/hi.res
index 27421d8..68994f8 100644
--- a/src/cobalt/content/icu/icudt56l/unit/hi.res
+++ b/src/cobalt/content/icu/icudt56l/unit/hi.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/unit/hr.res b/src/cobalt/content/icu/icudt56l/unit/hr.res
index d40e0f1..4e9add2 100644
--- a/src/cobalt/content/icu/icudt56l/unit/hr.res
+++ b/src/cobalt/content/icu/icudt56l/unit/hr.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/unit/hu.res b/src/cobalt/content/icu/icudt56l/unit/hu.res
index 06bcb33..30d1204 100644
--- a/src/cobalt/content/icu/icudt56l/unit/hu.res
+++ b/src/cobalt/content/icu/icudt56l/unit/hu.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/unit/id.res b/src/cobalt/content/icu/icudt56l/unit/id.res
index a2ffa76..a6fe7d5 100644
--- a/src/cobalt/content/icu/icudt56l/unit/id.res
+++ b/src/cobalt/content/icu/icudt56l/unit/id.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/unit/in.res b/src/cobalt/content/icu/icudt56l/unit/in.res
index 33be5ef..72942a4 100644
--- a/src/cobalt/content/icu/icudt56l/unit/in.res
+++ b/src/cobalt/content/icu/icudt56l/unit/in.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/unit/it.res b/src/cobalt/content/icu/icudt56l/unit/it.res
index dd8e132..f5122ea 100644
--- a/src/cobalt/content/icu/icudt56l/unit/it.res
+++ b/src/cobalt/content/icu/icudt56l/unit/it.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/unit/iw.res b/src/cobalt/content/icu/icudt56l/unit/iw.res
index 821b606..2481a96 100644
--- a/src/cobalt/content/icu/icudt56l/unit/iw.res
+++ b/src/cobalt/content/icu/icudt56l/unit/iw.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/unit/ja.res b/src/cobalt/content/icu/icudt56l/unit/ja.res
index 49099c7..679330e 100644
--- a/src/cobalt/content/icu/icudt56l/unit/ja.res
+++ b/src/cobalt/content/icu/icudt56l/unit/ja.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/unit/kn.res b/src/cobalt/content/icu/icudt56l/unit/kn.res
index 2397b74..8f7162a 100644
--- a/src/cobalt/content/icu/icudt56l/unit/kn.res
+++ b/src/cobalt/content/icu/icudt56l/unit/kn.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/unit/ko.res b/src/cobalt/content/icu/icudt56l/unit/ko.res
index 160f5b2..ddaf257 100644
--- a/src/cobalt/content/icu/icudt56l/unit/ko.res
+++ b/src/cobalt/content/icu/icudt56l/unit/ko.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/unit/lt.res b/src/cobalt/content/icu/icudt56l/unit/lt.res
index f1ae385..cb132b9 100644
--- a/src/cobalt/content/icu/icudt56l/unit/lt.res
+++ b/src/cobalt/content/icu/icudt56l/unit/lt.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/unit/lv.res b/src/cobalt/content/icu/icudt56l/unit/lv.res
index a9b3785..a454b77 100644
--- a/src/cobalt/content/icu/icudt56l/unit/lv.res
+++ b/src/cobalt/content/icu/icudt56l/unit/lv.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/unit/ml.res b/src/cobalt/content/icu/icudt56l/unit/ml.res
index 0e78247..68a34cc 100644
--- a/src/cobalt/content/icu/icudt56l/unit/ml.res
+++ b/src/cobalt/content/icu/icudt56l/unit/ml.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/unit/mr.res b/src/cobalt/content/icu/icudt56l/unit/mr.res
index 934d2cd..6f1059b 100644
--- a/src/cobalt/content/icu/icudt56l/unit/mr.res
+++ b/src/cobalt/content/icu/icudt56l/unit/mr.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/unit/ms.res b/src/cobalt/content/icu/icudt56l/unit/ms.res
index 2709c71..f337393 100644
--- a/src/cobalt/content/icu/icudt56l/unit/ms.res
+++ b/src/cobalt/content/icu/icudt56l/unit/ms.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/unit/nb.res b/src/cobalt/content/icu/icudt56l/unit/nb.res
index e30a45c..2889a2b 100644
--- a/src/cobalt/content/icu/icudt56l/unit/nb.res
+++ b/src/cobalt/content/icu/icudt56l/unit/nb.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/unit/nl.res b/src/cobalt/content/icu/icudt56l/unit/nl.res
index 5550071..f24a3f7 100644
--- a/src/cobalt/content/icu/icudt56l/unit/nl.res
+++ b/src/cobalt/content/icu/icudt56l/unit/nl.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/unit/no.res b/src/cobalt/content/icu/icudt56l/unit/no.res
index e266b67..63bb003 100644
--- a/src/cobalt/content/icu/icudt56l/unit/no.res
+++ b/src/cobalt/content/icu/icudt56l/unit/no.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/unit/pl.res b/src/cobalt/content/icu/icudt56l/unit/pl.res
index f54580b..4559eca 100644
--- a/src/cobalt/content/icu/icudt56l/unit/pl.res
+++ b/src/cobalt/content/icu/icudt56l/unit/pl.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/unit/pool.res b/src/cobalt/content/icu/icudt56l/unit/pool.res
index fa4b9be..e5caab3 100644
--- a/src/cobalt/content/icu/icudt56l/unit/pool.res
+++ b/src/cobalt/content/icu/icudt56l/unit/pool.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/unit/pt.res b/src/cobalt/content/icu/icudt56l/unit/pt.res
index d237e93..ed56d01 100644
--- a/src/cobalt/content/icu/icudt56l/unit/pt.res
+++ b/src/cobalt/content/icu/icudt56l/unit/pt.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/unit/pt_PT.res b/src/cobalt/content/icu/icudt56l/unit/pt_PT.res
index eea915f..4e786a7 100644
--- a/src/cobalt/content/icu/icudt56l/unit/pt_PT.res
+++ b/src/cobalt/content/icu/icudt56l/unit/pt_PT.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/unit/ro.res b/src/cobalt/content/icu/icudt56l/unit/ro.res
index d5d1e80..efe4f07 100644
--- a/src/cobalt/content/icu/icudt56l/unit/ro.res
+++ b/src/cobalt/content/icu/icudt56l/unit/ro.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/unit/root.res b/src/cobalt/content/icu/icudt56l/unit/root.res
index d05cba2..b873601 100644
--- a/src/cobalt/content/icu/icudt56l/unit/root.res
+++ b/src/cobalt/content/icu/icudt56l/unit/root.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/unit/ru.res b/src/cobalt/content/icu/icudt56l/unit/ru.res
index a215804..43a5ccd 100644
--- a/src/cobalt/content/icu/icudt56l/unit/ru.res
+++ b/src/cobalt/content/icu/icudt56l/unit/ru.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/unit/sh.res b/src/cobalt/content/icu/icudt56l/unit/sh.res
index eca4610..be1e011 100644
--- a/src/cobalt/content/icu/icudt56l/unit/sh.res
+++ b/src/cobalt/content/icu/icudt56l/unit/sh.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/unit/sk.res b/src/cobalt/content/icu/icudt56l/unit/sk.res
index e89c411..7e7ce75 100644
--- a/src/cobalt/content/icu/icudt56l/unit/sk.res
+++ b/src/cobalt/content/icu/icudt56l/unit/sk.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/unit/sl.res b/src/cobalt/content/icu/icudt56l/unit/sl.res
index 60cf2c2..9f4baaa 100644
--- a/src/cobalt/content/icu/icudt56l/unit/sl.res
+++ b/src/cobalt/content/icu/icudt56l/unit/sl.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/unit/sr.res b/src/cobalt/content/icu/icudt56l/unit/sr.res
index 0bc5ded..0844cb6 100644
--- a/src/cobalt/content/icu/icudt56l/unit/sr.res
+++ b/src/cobalt/content/icu/icudt56l/unit/sr.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/unit/sr_Latn.res b/src/cobalt/content/icu/icudt56l/unit/sr_Latn.res
index cf10bd7..cc14079 100644
--- a/src/cobalt/content/icu/icudt56l/unit/sr_Latn.res
+++ b/src/cobalt/content/icu/icudt56l/unit/sr_Latn.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/unit/sv.res b/src/cobalt/content/icu/icudt56l/unit/sv.res
index 0bdb977..1eb9f6e 100644
--- a/src/cobalt/content/icu/icudt56l/unit/sv.res
+++ b/src/cobalt/content/icu/icudt56l/unit/sv.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/unit/sw.res b/src/cobalt/content/icu/icudt56l/unit/sw.res
index ad7d258..329130b 100644
--- a/src/cobalt/content/icu/icudt56l/unit/sw.res
+++ b/src/cobalt/content/icu/icudt56l/unit/sw.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/unit/ta.res b/src/cobalt/content/icu/icudt56l/unit/ta.res
index 2560e71..391bc60 100644
--- a/src/cobalt/content/icu/icudt56l/unit/ta.res
+++ b/src/cobalt/content/icu/icudt56l/unit/ta.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/unit/te.res b/src/cobalt/content/icu/icudt56l/unit/te.res
index 895a706..69b2219 100644
--- a/src/cobalt/content/icu/icudt56l/unit/te.res
+++ b/src/cobalt/content/icu/icudt56l/unit/te.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/unit/th.res b/src/cobalt/content/icu/icudt56l/unit/th.res
index 0412ef9..bafea5b 100644
--- a/src/cobalt/content/icu/icudt56l/unit/th.res
+++ b/src/cobalt/content/icu/icudt56l/unit/th.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/unit/tl.res b/src/cobalt/content/icu/icudt56l/unit/tl.res
index 200a065..10ce65b 100644
--- a/src/cobalt/content/icu/icudt56l/unit/tl.res
+++ b/src/cobalt/content/icu/icudt56l/unit/tl.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/unit/tr.res b/src/cobalt/content/icu/icudt56l/unit/tr.res
index bafbe4f..0b1ae28 100644
--- a/src/cobalt/content/icu/icudt56l/unit/tr.res
+++ b/src/cobalt/content/icu/icudt56l/unit/tr.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/unit/uk.res b/src/cobalt/content/icu/icudt56l/unit/uk.res
index 6bdacc9..bf04599 100644
--- a/src/cobalt/content/icu/icudt56l/unit/uk.res
+++ b/src/cobalt/content/icu/icudt56l/unit/uk.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/unit/vi.res b/src/cobalt/content/icu/icudt56l/unit/vi.res
index 62b342c..0b084c6 100644
--- a/src/cobalt/content/icu/icudt56l/unit/vi.res
+++ b/src/cobalt/content/icu/icudt56l/unit/vi.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/unit/zh.res b/src/cobalt/content/icu/icudt56l/unit/zh.res
index fb82379..0aca7fd 100644
--- a/src/cobalt/content/icu/icudt56l/unit/zh.res
+++ b/src/cobalt/content/icu/icudt56l/unit/zh.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/unit/zh_CN.res b/src/cobalt/content/icu/icudt56l/unit/zh_CN.res
index 2143911..c2a8662 100644
--- a/src/cobalt/content/icu/icudt56l/unit/zh_CN.res
+++ b/src/cobalt/content/icu/icudt56l/unit/zh_CN.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/unit/zh_HK.res b/src/cobalt/content/icu/icudt56l/unit/zh_HK.res
index 3ecb9af..afeade2 100644
--- a/src/cobalt/content/icu/icudt56l/unit/zh_HK.res
+++ b/src/cobalt/content/icu/icudt56l/unit/zh_HK.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/unit/zh_Hans.res b/src/cobalt/content/icu/icudt56l/unit/zh_Hans.res
index 390df10..5f8b9d8 100644
--- a/src/cobalt/content/icu/icudt56l/unit/zh_Hans.res
+++ b/src/cobalt/content/icu/icudt56l/unit/zh_Hans.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/unit/zh_Hans_CN.res b/src/cobalt/content/icu/icudt56l/unit/zh_Hans_CN.res
index 52171e6..0e5fcc0 100644
--- a/src/cobalt/content/icu/icudt56l/unit/zh_Hans_CN.res
+++ b/src/cobalt/content/icu/icudt56l/unit/zh_Hans_CN.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/unit/zh_Hans_SG.res b/src/cobalt/content/icu/icudt56l/unit/zh_Hans_SG.res
index 60ebd39..893561a 100644
--- a/src/cobalt/content/icu/icudt56l/unit/zh_Hans_SG.res
+++ b/src/cobalt/content/icu/icudt56l/unit/zh_Hans_SG.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/unit/zh_Hant.res b/src/cobalt/content/icu/icudt56l/unit/zh_Hant.res
index b38fda6..6480979 100644
--- a/src/cobalt/content/icu/icudt56l/unit/zh_Hant.res
+++ b/src/cobalt/content/icu/icudt56l/unit/zh_Hant.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/unit/zh_Hant_HK.res b/src/cobalt/content/icu/icudt56l/unit/zh_Hant_HK.res
index 28757bc..885024c 100644
--- a/src/cobalt/content/icu/icudt56l/unit/zh_Hant_HK.res
+++ b/src/cobalt/content/icu/icudt56l/unit/zh_Hant_HK.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/unit/zh_Hant_TW.res b/src/cobalt/content/icu/icudt56l/unit/zh_Hant_TW.res
index 52171e6..0e5fcc0 100644
--- a/src/cobalt/content/icu/icudt56l/unit/zh_Hant_TW.res
+++ b/src/cobalt/content/icu/icudt56l/unit/zh_Hant_TW.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/unit/zh_SG.res b/src/cobalt/content/icu/icudt56l/unit/zh_SG.res
index 591fed6..6c93f05 100644
--- a/src/cobalt/content/icu/icudt56l/unit/zh_SG.res
+++ b/src/cobalt/content/icu/icudt56l/unit/zh_SG.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/unit/zh_TW.res b/src/cobalt/content/icu/icudt56l/unit/zh_TW.res
index 9cfe4de..67a1f01 100644
--- a/src/cobalt/content/icu/icudt56l/unit/zh_TW.res
+++ b/src/cobalt/content/icu/icudt56l/unit/zh_TW.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/ur.res b/src/cobalt/content/icu/icudt56l/ur.res
index 8ce943b..9b26777 100644
--- a/src/cobalt/content/icu/icudt56l/ur.res
+++ b/src/cobalt/content/icu/icudt56l/ur.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/uz.res b/src/cobalt/content/icu/icudt56l/uz.res
index c48eb7c..fcc6e35 100644
--- a/src/cobalt/content/icu/icudt56l/uz.res
+++ b/src/cobalt/content/icu/icudt56l/uz.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/vi.res b/src/cobalt/content/icu/icudt56l/vi.res
index fa0bc69..bd29812 100644
--- a/src/cobalt/content/icu/icudt56l/vi.res
+++ b/src/cobalt/content/icu/icudt56l/vi.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/wa.res b/src/cobalt/content/icu/icudt56l/wa.res
index b33131e..9823bb0 100644
--- a/src/cobalt/content/icu/icudt56l/wa.res
+++ b/src/cobalt/content/icu/icudt56l/wa.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/yo.res b/src/cobalt/content/icu/icudt56l/yo.res
index 9d6fcf8..ba09dca 100644
--- a/src/cobalt/content/icu/icudt56l/yo.res
+++ b/src/cobalt/content/icu/icudt56l/yo.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/zh.res b/src/cobalt/content/icu/icudt56l/zh.res
index 8693ef0..1754876 100644
--- a/src/cobalt/content/icu/icudt56l/zh.res
+++ b/src/cobalt/content/icu/icudt56l/zh.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/zh_CN.res b/src/cobalt/content/icu/icudt56l/zh_CN.res
index 6413b61..306efe4 100644
--- a/src/cobalt/content/icu/icudt56l/zh_CN.res
+++ b/src/cobalt/content/icu/icudt56l/zh_CN.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/zh_HK.res b/src/cobalt/content/icu/icudt56l/zh_HK.res
index 90ec33d..d30e69d 100644
--- a/src/cobalt/content/icu/icudt56l/zh_HK.res
+++ b/src/cobalt/content/icu/icudt56l/zh_HK.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/zh_Hans.res b/src/cobalt/content/icu/icudt56l/zh_Hans.res
index 008e4b7..d0ddba1 100644
--- a/src/cobalt/content/icu/icudt56l/zh_Hans.res
+++ b/src/cobalt/content/icu/icudt56l/zh_Hans.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/zh_Hans_CN.res b/src/cobalt/content/icu/icudt56l/zh_Hans_CN.res
index 008e4b7..d0ddba1 100644
--- a/src/cobalt/content/icu/icudt56l/zh_Hans_CN.res
+++ b/src/cobalt/content/icu/icudt56l/zh_Hans_CN.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/zh_Hans_SG.res b/src/cobalt/content/icu/icudt56l/zh_Hans_SG.res
index 7d56843..5290c33 100644
--- a/src/cobalt/content/icu/icudt56l/zh_Hans_SG.res
+++ b/src/cobalt/content/icu/icudt56l/zh_Hans_SG.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/zh_Hant.res b/src/cobalt/content/icu/icudt56l/zh_Hant.res
index fa6cf1d..6fb1f94 100644
--- a/src/cobalt/content/icu/icudt56l/zh_Hant.res
+++ b/src/cobalt/content/icu/icudt56l/zh_Hant.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/zh_Hant_HK.res b/src/cobalt/content/icu/icudt56l/zh_Hant_HK.res
index c824509..25384c6 100644
--- a/src/cobalt/content/icu/icudt56l/zh_Hant_HK.res
+++ b/src/cobalt/content/icu/icudt56l/zh_Hant_HK.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/zh_Hant_TW.res b/src/cobalt/content/icu/icudt56l/zh_Hant_TW.res
index 008e4b7..d0ddba1 100644
--- a/src/cobalt/content/icu/icudt56l/zh_Hant_TW.res
+++ b/src/cobalt/content/icu/icudt56l/zh_Hant_TW.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/zh_SG.res b/src/cobalt/content/icu/icudt56l/zh_SG.res
index b4a5fc2..f80c73c 100644
--- a/src/cobalt/content/icu/icudt56l/zh_SG.res
+++ b/src/cobalt/content/icu/icudt56l/zh_SG.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/zh_TW.res b/src/cobalt/content/icu/icudt56l/zh_TW.res
index 5b8785d..dd21dc5 100644
--- a/src/cobalt/content/icu/icudt56l/zh_TW.res
+++ b/src/cobalt/content/icu/icudt56l/zh_TW.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/zone/am.res b/src/cobalt/content/icu/icudt56l/zone/am.res
index 0ca203b..a615640 100644
--- a/src/cobalt/content/icu/icudt56l/zone/am.res
+++ b/src/cobalt/content/icu/icudt56l/zone/am.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/zone/ar.res b/src/cobalt/content/icu/icudt56l/zone/ar.res
index 83694eb..24ab72f 100644
--- a/src/cobalt/content/icu/icudt56l/zone/ar.res
+++ b/src/cobalt/content/icu/icudt56l/zone/ar.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/zone/bg.res b/src/cobalt/content/icu/icudt56l/zone/bg.res
index 9b8d165..4d07990 100644
--- a/src/cobalt/content/icu/icudt56l/zone/bg.res
+++ b/src/cobalt/content/icu/icudt56l/zone/bg.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/zone/bn.res b/src/cobalt/content/icu/icudt56l/zone/bn.res
index d6a7c89..24a512e 100644
--- a/src/cobalt/content/icu/icudt56l/zone/bn.res
+++ b/src/cobalt/content/icu/icudt56l/zone/bn.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/zone/ca.res b/src/cobalt/content/icu/icudt56l/zone/ca.res
index fd8e6e8..475907e 100644
--- a/src/cobalt/content/icu/icudt56l/zone/ca.res
+++ b/src/cobalt/content/icu/icudt56l/zone/ca.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/zone/cs.res b/src/cobalt/content/icu/icudt56l/zone/cs.res
index 57351b4..a177731 100644
--- a/src/cobalt/content/icu/icudt56l/zone/cs.res
+++ b/src/cobalt/content/icu/icudt56l/zone/cs.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/zone/da.res b/src/cobalt/content/icu/icudt56l/zone/da.res
index 85deb82..00595e7 100644
--- a/src/cobalt/content/icu/icudt56l/zone/da.res
+++ b/src/cobalt/content/icu/icudt56l/zone/da.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/zone/de.res b/src/cobalt/content/icu/icudt56l/zone/de.res
index 80b998d..1fe2466 100644
--- a/src/cobalt/content/icu/icudt56l/zone/de.res
+++ b/src/cobalt/content/icu/icudt56l/zone/de.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/zone/el.res b/src/cobalt/content/icu/icudt56l/zone/el.res
index 10dcfc0..8211aa7 100644
--- a/src/cobalt/content/icu/icudt56l/zone/el.res
+++ b/src/cobalt/content/icu/icudt56l/zone/el.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/zone/en.res b/src/cobalt/content/icu/icudt56l/zone/en.res
index cefa19c..16fd7d5 100644
--- a/src/cobalt/content/icu/icudt56l/zone/en.res
+++ b/src/cobalt/content/icu/icudt56l/zone/en.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/zone/en_001.res b/src/cobalt/content/icu/icudt56l/zone/en_001.res
index 8dc348a..b630c21 100644
--- a/src/cobalt/content/icu/icudt56l/zone/en_001.res
+++ b/src/cobalt/content/icu/icudt56l/zone/en_001.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/zone/en_150.res b/src/cobalt/content/icu/icudt56l/zone/en_150.res
index fc046d3..58ea37f 100644
--- a/src/cobalt/content/icu/icudt56l/zone/en_150.res
+++ b/src/cobalt/content/icu/icudt56l/zone/en_150.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/zone/en_AU.res b/src/cobalt/content/icu/icudt56l/zone/en_AU.res
index 603245e..b44fc79 100644
--- a/src/cobalt/content/icu/icudt56l/zone/en_AU.res
+++ b/src/cobalt/content/icu/icudt56l/zone/en_AU.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/zone/en_CA.res b/src/cobalt/content/icu/icudt56l/zone/en_CA.res
index a0ccf7c..92a64b5 100644
--- a/src/cobalt/content/icu/icudt56l/zone/en_CA.res
+++ b/src/cobalt/content/icu/icudt56l/zone/en_CA.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/zone/en_GB.res b/src/cobalt/content/icu/icudt56l/zone/en_GB.res
index b2340ce..62b5cd5 100644
--- a/src/cobalt/content/icu/icudt56l/zone/en_GB.res
+++ b/src/cobalt/content/icu/icudt56l/zone/en_GB.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/zone/en_IN.res b/src/cobalt/content/icu/icudt56l/zone/en_IN.res
index 4dae4de..8c37488 100644
--- a/src/cobalt/content/icu/icudt56l/zone/en_IN.res
+++ b/src/cobalt/content/icu/icudt56l/zone/en_IN.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/zone/en_NZ.res b/src/cobalt/content/icu/icudt56l/zone/en_NZ.res
index 2cee9fe..472c851 100644
--- a/src/cobalt/content/icu/icudt56l/zone/en_NZ.res
+++ b/src/cobalt/content/icu/icudt56l/zone/en_NZ.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/zone/en_ZA.res b/src/cobalt/content/icu/icudt56l/zone/en_ZA.res
index 0de2632..6061649 100644
--- a/src/cobalt/content/icu/icudt56l/zone/en_ZA.res
+++ b/src/cobalt/content/icu/icudt56l/zone/en_ZA.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/zone/es.res b/src/cobalt/content/icu/icudt56l/zone/es.res
index a678c63..d0e1844 100644
--- a/src/cobalt/content/icu/icudt56l/zone/es.res
+++ b/src/cobalt/content/icu/icudt56l/zone/es.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/zone/es_419.res b/src/cobalt/content/icu/icudt56l/zone/es_419.res
index a2ce67b..5361981 100644
--- a/src/cobalt/content/icu/icudt56l/zone/es_419.res
+++ b/src/cobalt/content/icu/icudt56l/zone/es_419.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/zone/es_AR.res b/src/cobalt/content/icu/icudt56l/zone/es_AR.res
index 4ee9778..565e293 100644
--- a/src/cobalt/content/icu/icudt56l/zone/es_AR.res
+++ b/src/cobalt/content/icu/icudt56l/zone/es_AR.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/zone/es_MX.res b/src/cobalt/content/icu/icudt56l/zone/es_MX.res
index 800004b..ba6a4f6 100644
--- a/src/cobalt/content/icu/icudt56l/zone/es_MX.res
+++ b/src/cobalt/content/icu/icudt56l/zone/es_MX.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/zone/es_US.res b/src/cobalt/content/icu/icudt56l/zone/es_US.res
index de33554..53d28ff 100644
--- a/src/cobalt/content/icu/icudt56l/zone/es_US.res
+++ b/src/cobalt/content/icu/icudt56l/zone/es_US.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/zone/et.res b/src/cobalt/content/icu/icudt56l/zone/et.res
index 9a5a38b..ef24a3b 100644
--- a/src/cobalt/content/icu/icudt56l/zone/et.res
+++ b/src/cobalt/content/icu/icudt56l/zone/et.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/zone/fa.res b/src/cobalt/content/icu/icudt56l/zone/fa.res
index 0c46d63..5714cb5 100644
--- a/src/cobalt/content/icu/icudt56l/zone/fa.res
+++ b/src/cobalt/content/icu/icudt56l/zone/fa.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/zone/fi.res b/src/cobalt/content/icu/icudt56l/zone/fi.res
index 18e01f3..6a5e620 100644
--- a/src/cobalt/content/icu/icudt56l/zone/fi.res
+++ b/src/cobalt/content/icu/icudt56l/zone/fi.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/zone/fil.res b/src/cobalt/content/icu/icudt56l/zone/fil.res
index e9c8898..e129a7d 100644
--- a/src/cobalt/content/icu/icudt56l/zone/fil.res
+++ b/src/cobalt/content/icu/icudt56l/zone/fil.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/zone/fr.res b/src/cobalt/content/icu/icudt56l/zone/fr.res
index 7b11d57..6478e5c 100644
--- a/src/cobalt/content/icu/icudt56l/zone/fr.res
+++ b/src/cobalt/content/icu/icudt56l/zone/fr.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/zone/fr_CA.res b/src/cobalt/content/icu/icudt56l/zone/fr_CA.res
index 4581455..bfc2acd 100644
--- a/src/cobalt/content/icu/icudt56l/zone/fr_CA.res
+++ b/src/cobalt/content/icu/icudt56l/zone/fr_CA.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/zone/gu.res b/src/cobalt/content/icu/icudt56l/zone/gu.res
index 837e497..4b74231 100644
--- a/src/cobalt/content/icu/icudt56l/zone/gu.res
+++ b/src/cobalt/content/icu/icudt56l/zone/gu.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/zone/he.res b/src/cobalt/content/icu/icudt56l/zone/he.res
index eea5121..c237cdf 100644
--- a/src/cobalt/content/icu/icudt56l/zone/he.res
+++ b/src/cobalt/content/icu/icudt56l/zone/he.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/zone/hi.res b/src/cobalt/content/icu/icudt56l/zone/hi.res
index 890d0d6e..8da58fd 100644
--- a/src/cobalt/content/icu/icudt56l/zone/hi.res
+++ b/src/cobalt/content/icu/icudt56l/zone/hi.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/zone/hr.res b/src/cobalt/content/icu/icudt56l/zone/hr.res
index 422cc73..4b68b94 100644
--- a/src/cobalt/content/icu/icudt56l/zone/hr.res
+++ b/src/cobalt/content/icu/icudt56l/zone/hr.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/zone/hu.res b/src/cobalt/content/icu/icudt56l/zone/hu.res
index bcf5a18..8b91cf2 100644
--- a/src/cobalt/content/icu/icudt56l/zone/hu.res
+++ b/src/cobalt/content/icu/icudt56l/zone/hu.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/zone/id.res b/src/cobalt/content/icu/icudt56l/zone/id.res
index e59ebcc..6b944c0 100644
--- a/src/cobalt/content/icu/icudt56l/zone/id.res
+++ b/src/cobalt/content/icu/icudt56l/zone/id.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/zone/in.res b/src/cobalt/content/icu/icudt56l/zone/in.res
index 6c9d80f..8ba67ac 100644
--- a/src/cobalt/content/icu/icudt56l/zone/in.res
+++ b/src/cobalt/content/icu/icudt56l/zone/in.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/zone/it.res b/src/cobalt/content/icu/icudt56l/zone/it.res
index 3243f92..d8d1e1f 100644
--- a/src/cobalt/content/icu/icudt56l/zone/it.res
+++ b/src/cobalt/content/icu/icudt56l/zone/it.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/zone/iw.res b/src/cobalt/content/icu/icudt56l/zone/iw.res
index 26c3f5d..3a64c91 100644
--- a/src/cobalt/content/icu/icudt56l/zone/iw.res
+++ b/src/cobalt/content/icu/icudt56l/zone/iw.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/zone/ja.res b/src/cobalt/content/icu/icudt56l/zone/ja.res
index 81e07bf..ca870bb 100644
--- a/src/cobalt/content/icu/icudt56l/zone/ja.res
+++ b/src/cobalt/content/icu/icudt56l/zone/ja.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/zone/kn.res b/src/cobalt/content/icu/icudt56l/zone/kn.res
index e1a67d9..0aa5fd5 100644
--- a/src/cobalt/content/icu/icudt56l/zone/kn.res
+++ b/src/cobalt/content/icu/icudt56l/zone/kn.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/zone/ko.res b/src/cobalt/content/icu/icudt56l/zone/ko.res
index 2a13eef..e91d1f2 100644
--- a/src/cobalt/content/icu/icudt56l/zone/ko.res
+++ b/src/cobalt/content/icu/icudt56l/zone/ko.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/zone/lt.res b/src/cobalt/content/icu/icudt56l/zone/lt.res
index c951cdf..c1fb729 100644
--- a/src/cobalt/content/icu/icudt56l/zone/lt.res
+++ b/src/cobalt/content/icu/icudt56l/zone/lt.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/zone/lv.res b/src/cobalt/content/icu/icudt56l/zone/lv.res
index fbc0d3a..8187c0a 100644
--- a/src/cobalt/content/icu/icudt56l/zone/lv.res
+++ b/src/cobalt/content/icu/icudt56l/zone/lv.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/zone/ml.res b/src/cobalt/content/icu/icudt56l/zone/ml.res
index 0bbb558..5e517c5 100644
--- a/src/cobalt/content/icu/icudt56l/zone/ml.res
+++ b/src/cobalt/content/icu/icudt56l/zone/ml.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/zone/mr.res b/src/cobalt/content/icu/icudt56l/zone/mr.res
index c427585..f065500 100644
--- a/src/cobalt/content/icu/icudt56l/zone/mr.res
+++ b/src/cobalt/content/icu/icudt56l/zone/mr.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/zone/ms.res b/src/cobalt/content/icu/icudt56l/zone/ms.res
index 74c35f0..0681ef9c 100644
--- a/src/cobalt/content/icu/icudt56l/zone/ms.res
+++ b/src/cobalt/content/icu/icudt56l/zone/ms.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/zone/nb.res b/src/cobalt/content/icu/icudt56l/zone/nb.res
index 8964a4c..fb69575 100644
--- a/src/cobalt/content/icu/icudt56l/zone/nb.res
+++ b/src/cobalt/content/icu/icudt56l/zone/nb.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/zone/nl.res b/src/cobalt/content/icu/icudt56l/zone/nl.res
index e4fd809..a0817f6 100644
--- a/src/cobalt/content/icu/icudt56l/zone/nl.res
+++ b/src/cobalt/content/icu/icudt56l/zone/nl.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/zone/no.res b/src/cobalt/content/icu/icudt56l/zone/no.res
index d674a96..707257a 100644
--- a/src/cobalt/content/icu/icudt56l/zone/no.res
+++ b/src/cobalt/content/icu/icudt56l/zone/no.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/zone/pl.res b/src/cobalt/content/icu/icudt56l/zone/pl.res
index 6b54d59..643202a 100644
--- a/src/cobalt/content/icu/icudt56l/zone/pl.res
+++ b/src/cobalt/content/icu/icudt56l/zone/pl.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/zone/pool.res b/src/cobalt/content/icu/icudt56l/zone/pool.res
index 20ff031..6be0d1a 100644
--- a/src/cobalt/content/icu/icudt56l/zone/pool.res
+++ b/src/cobalt/content/icu/icudt56l/zone/pool.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/zone/pt.res b/src/cobalt/content/icu/icudt56l/zone/pt.res
index 5cc633e..c582c3c 100644
--- a/src/cobalt/content/icu/icudt56l/zone/pt.res
+++ b/src/cobalt/content/icu/icudt56l/zone/pt.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/zone/pt_PT.res b/src/cobalt/content/icu/icudt56l/zone/pt_PT.res
index f935c23..c27e411 100644
--- a/src/cobalt/content/icu/icudt56l/zone/pt_PT.res
+++ b/src/cobalt/content/icu/icudt56l/zone/pt_PT.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/zone/ro.res b/src/cobalt/content/icu/icudt56l/zone/ro.res
index 793b79d..602535c 100644
--- a/src/cobalt/content/icu/icudt56l/zone/ro.res
+++ b/src/cobalt/content/icu/icudt56l/zone/ro.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/zone/root.res b/src/cobalt/content/icu/icudt56l/zone/root.res
index 4b5d6a5..ccf6129 100644
--- a/src/cobalt/content/icu/icudt56l/zone/root.res
+++ b/src/cobalt/content/icu/icudt56l/zone/root.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/zone/ru.res b/src/cobalt/content/icu/icudt56l/zone/ru.res
index c1f7cc5..7640ffe 100644
--- a/src/cobalt/content/icu/icudt56l/zone/ru.res
+++ b/src/cobalt/content/icu/icudt56l/zone/ru.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/zone/sk.res b/src/cobalt/content/icu/icudt56l/zone/sk.res
index 960272e..265d646 100644
--- a/src/cobalt/content/icu/icudt56l/zone/sk.res
+++ b/src/cobalt/content/icu/icudt56l/zone/sk.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/zone/sl.res b/src/cobalt/content/icu/icudt56l/zone/sl.res
index 2b9d73b..f8b0996 100644
--- a/src/cobalt/content/icu/icudt56l/zone/sl.res
+++ b/src/cobalt/content/icu/icudt56l/zone/sl.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/zone/sr.res b/src/cobalt/content/icu/icudt56l/zone/sr.res
index 04aafaf..1caa8c6 100644
--- a/src/cobalt/content/icu/icudt56l/zone/sr.res
+++ b/src/cobalt/content/icu/icudt56l/zone/sr.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/zone/sv.res b/src/cobalt/content/icu/icudt56l/zone/sv.res
index 6acfde0..ffc1ca7 100644
--- a/src/cobalt/content/icu/icudt56l/zone/sv.res
+++ b/src/cobalt/content/icu/icudt56l/zone/sv.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/zone/sw.res b/src/cobalt/content/icu/icudt56l/zone/sw.res
index d29d17f..90e7f83 100644
--- a/src/cobalt/content/icu/icudt56l/zone/sw.res
+++ b/src/cobalt/content/icu/icudt56l/zone/sw.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/zone/ta.res b/src/cobalt/content/icu/icudt56l/zone/ta.res
index 3dabd4b..14e7724 100644
--- a/src/cobalt/content/icu/icudt56l/zone/ta.res
+++ b/src/cobalt/content/icu/icudt56l/zone/ta.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/zone/te.res b/src/cobalt/content/icu/icudt56l/zone/te.res
index 6964555..b31f348 100644
--- a/src/cobalt/content/icu/icudt56l/zone/te.res
+++ b/src/cobalt/content/icu/icudt56l/zone/te.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/zone/th.res b/src/cobalt/content/icu/icudt56l/zone/th.res
index dc1cd79..7be82bf 100644
--- a/src/cobalt/content/icu/icudt56l/zone/th.res
+++ b/src/cobalt/content/icu/icudt56l/zone/th.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/zone/tr.res b/src/cobalt/content/icu/icudt56l/zone/tr.res
index e9f0f1e..7672569 100644
--- a/src/cobalt/content/icu/icudt56l/zone/tr.res
+++ b/src/cobalt/content/icu/icudt56l/zone/tr.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/zone/tzdbNames.res b/src/cobalt/content/icu/icudt56l/zone/tzdbNames.res
index 1e36cea..463ab0f 100644
--- a/src/cobalt/content/icu/icudt56l/zone/tzdbNames.res
+++ b/src/cobalt/content/icu/icudt56l/zone/tzdbNames.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/zone/uk.res b/src/cobalt/content/icu/icudt56l/zone/uk.res
index e51f2e4..ca07a8f 100644
--- a/src/cobalt/content/icu/icudt56l/zone/uk.res
+++ b/src/cobalt/content/icu/icudt56l/zone/uk.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/zone/vi.res b/src/cobalt/content/icu/icudt56l/zone/vi.res
index e1147c7..21162bc 100644
--- a/src/cobalt/content/icu/icudt56l/zone/vi.res
+++ b/src/cobalt/content/icu/icudt56l/zone/vi.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/zone/zh.res b/src/cobalt/content/icu/icudt56l/zone/zh.res
index 1d14841..9a55369 100644
--- a/src/cobalt/content/icu/icudt56l/zone/zh.res
+++ b/src/cobalt/content/icu/icudt56l/zone/zh.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/zone/zh_CN.res b/src/cobalt/content/icu/icudt56l/zone/zh_CN.res
index 73058b5..20d5db9 100644
--- a/src/cobalt/content/icu/icudt56l/zone/zh_CN.res
+++ b/src/cobalt/content/icu/icudt56l/zone/zh_CN.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/zone/zh_HK.res b/src/cobalt/content/icu/icudt56l/zone/zh_HK.res
index 22b133b..7da02f8 100644
--- a/src/cobalt/content/icu/icudt56l/zone/zh_HK.res
+++ b/src/cobalt/content/icu/icudt56l/zone/zh_HK.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/zone/zh_Hans.res b/src/cobalt/content/icu/icudt56l/zone/zh_Hans.res
index 750bf38..0b2c050 100644
--- a/src/cobalt/content/icu/icudt56l/zone/zh_Hans.res
+++ b/src/cobalt/content/icu/icudt56l/zone/zh_Hans.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/zone/zh_Hans_CN.res b/src/cobalt/content/icu/icudt56l/zone/zh_Hans_CN.res
index c48febe..1de3818 100644
--- a/src/cobalt/content/icu/icudt56l/zone/zh_Hans_CN.res
+++ b/src/cobalt/content/icu/icudt56l/zone/zh_Hans_CN.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/zone/zh_Hans_SG.res b/src/cobalt/content/icu/icudt56l/zone/zh_Hans_SG.res
index 2d2abc8..c9a5bb5 100644
--- a/src/cobalt/content/icu/icudt56l/zone/zh_Hans_SG.res
+++ b/src/cobalt/content/icu/icudt56l/zone/zh_Hans_SG.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/zone/zh_Hant.res b/src/cobalt/content/icu/icudt56l/zone/zh_Hant.res
index adfd75b..07262fa 100644
--- a/src/cobalt/content/icu/icudt56l/zone/zh_Hant.res
+++ b/src/cobalt/content/icu/icudt56l/zone/zh_Hant.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/zone/zh_Hant_HK.res b/src/cobalt/content/icu/icudt56l/zone/zh_Hant_HK.res
index 49d0732..14edaca 100644
--- a/src/cobalt/content/icu/icudt56l/zone/zh_Hant_HK.res
+++ b/src/cobalt/content/icu/icudt56l/zone/zh_Hant_HK.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/zone/zh_Hant_TW.res b/src/cobalt/content/icu/icudt56l/zone/zh_Hant_TW.res
index c48febe..1de3818 100644
--- a/src/cobalt/content/icu/icudt56l/zone/zh_Hant_TW.res
+++ b/src/cobalt/content/icu/icudt56l/zone/zh_Hant_TW.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/zone/zh_SG.res b/src/cobalt/content/icu/icudt56l/zone/zh_SG.res
index a92d327..bc7f82f 100644
--- a/src/cobalt/content/icu/icudt56l/zone/zh_SG.res
+++ b/src/cobalt/content/icu/icudt56l/zone/zh_SG.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/zone/zh_TW.res b/src/cobalt/content/icu/icudt56l/zone/zh_TW.res
index 001b973..6f12dcb 100644
--- a/src/cobalt/content/icu/icudt56l/zone/zh_TW.res
+++ b/src/cobalt/content/icu/icudt56l/zone/zh_TW.res
Binary files differ
diff --git a/src/cobalt/content/icu/icudt56l/zu.res b/src/cobalt/content/icu/icudt56l/zu.res
index ea22475..1b918d8 100644
--- a/src/cobalt/content/icu/icudt56l/zu.res
+++ b/src/cobalt/content/icu/icudt56l/zu.res
Binary files differ
diff --git a/src/cobalt/css_parser/grammar.y b/src/cobalt/css_parser/grammar.y
index 52f988e..63f869d 100644
--- a/src/cobalt/css_parser/grammar.y
+++ b/src/cobalt/css_parser/grammar.y
@@ -4304,8 +4304,12 @@
 
 // Specifies the minimum content height of boxes.
 //   https://www.w3.org/TR/CSS21/visudet.html#propdef-min-height
+//   https://www.w3.org/TR/css-sizing-3/#min-size-properties
 min_height_property_value:
-    positive_length_percent_property_value
+    kAutoToken maybe_whitespace {
+    $$ = AddRef(cssom::KeywordValue::GetAuto().get());
+  }
+  | positive_length_percent_property_value
   | common_values
   ;
 
@@ -5736,8 +5740,12 @@
 
 // Specifies the minimum content width of boxes.
 //   https://www.w3.org/TR/CSS2/visudet.html#propdef-min-width
+//   https://www.w3.org/TR/css-sizing-3/#min-size-properties
 min_width_property_value:
-    positive_length_percent_property_value
+    kAutoToken maybe_whitespace {
+    $$ = AddRef(cssom::KeywordValue::GetAuto().get());
+  }
+  | positive_length_percent_property_value
   | common_values
   ;
 
diff --git a/src/cobalt/css_parser/parser_test.cc b/src/cobalt/css_parser/parser_test.cc
index db63e85..fa1511c 100644
--- a/src/cobalt/css_parser/parser_test.cc
+++ b/src/cobalt/css_parser/parser_test.cc
@@ -6346,6 +6346,20 @@
   EXPECT_EQ(cssom::kPixelsUnit, min_height->unit());
 }
 
+TEST_F(ParserTest, ParsesMinHeightAuto) {
+  // 'auto' is also the initial value for min-height in CSS3. It is set to a
+  // length value first, to ensure that the property does not have the initial
+  // value for the test.
+  //   https://www.w3.org/TR/css-sizing-3/#min-size-properties
+  scoped_refptr<cssom::CSSDeclaredStyleData> style =
+      parser_.ParseStyleDeclarationList("min-height: 100px; min-height: auto;",
+                                        source_location_);
+
+  ASSERT_TRUE(style->IsDeclared(cssom::kMinHeightProperty));
+  EXPECT_EQ(cssom::KeywordValue::GetAuto(),
+            style->GetPropertyValue(cssom::kMinHeightProperty));
+}
+
 TEST_F(ParserTest, ParsesMinWidth) {
   scoped_refptr<cssom::CSSDeclaredStyleData> style =
       parser_.ParseStyleDeclarationList("min-width: 100px;", source_location_);
@@ -6359,6 +6373,20 @@
   EXPECT_EQ(cssom::kPixelsUnit, min_width->unit());
 }
 
+TEST_F(ParserTest, ParsesMinWidthAuto) {
+  // 'auto' is also the initial value for min-width in CSS3. It is set to a
+  // length value first, to ensure that the property does not have the initial
+  // value for the test.
+  //   https://www.w3.org/TR/css-sizing-3/#min-size-properties
+  scoped_refptr<cssom::CSSDeclaredStyleData> style =
+      parser_.ParseStyleDeclarationList("min-width: 100px; min-width: auto;",
+                                        source_location_);
+
+  ASSERT_TRUE(style->IsDeclared(cssom::kMinWidthProperty));
+  EXPECT_EQ(cssom::KeywordValue::GetAuto(),
+            style->GetPropertyValue(cssom::kMinWidthProperty));
+}
+
 TEST_F(ParserTest, ParsesOpacity) {
   scoped_refptr<cssom::CSSDeclaredStyleData> style =
       parser_.ParseStyleDeclarationList("opacity: 0.5;", source_location_);
diff --git a/src/cobalt/cssom/property_definitions.cc b/src/cobalt/cssom/property_definitions.cc
index f140fde..72d36ac 100644
--- a/src/cobalt/cssom/property_definitions.cc
+++ b/src/cobalt/cssom/property_definitions.cc
@@ -570,18 +570,18 @@
                         kImpactsBoxCrossReferencesNo, KeywordValue::GetNone());
 
   // https://www.w3.org/TR/CSS2/visudet.html#propdef-min-height
+  // https://www.w3.org/TR/css-sizing-3/#min-size-properties
   SetPropertyDefinition(kMinHeightProperty, "min-height", kInheritedNo,
                         kAnimatableNo, kImpactsChildComputedStyleNo,
                         kImpactsBoxGenerationNo, kImpactsBoxSizesYes,
-                        kImpactsBoxCrossReferencesNo,
-                        new LengthValue(0, kPixelsUnit));
+                        kImpactsBoxCrossReferencesNo, KeywordValue::GetAuto());
 
   // https://www.w3.org/TR/CSS2/visudet.html#propdef-min-width
+  // https://www.w3.org/TR/css-sizing-3/#min-size-properties
   SetPropertyDefinition(kMinWidthProperty, "min-width", kInheritedNo,
                         kAnimatableNo, kImpactsChildComputedStyleNo,
                         kImpactsBoxGenerationNo, kImpactsBoxSizesYes,
-                        kImpactsBoxCrossReferencesNo,
-                        new LengthValue(0, kPixelsUnit));
+                        kImpactsBoxCrossReferencesNo, KeywordValue::GetAuto());
 
   // https://www.w3.org/TR/css3-color/#opacity
   SetPropertyDefinition(kOpacityProperty, "opacity", kInheritedNo,
diff --git a/src/cobalt/debug/backend/content/css_agent.js b/src/cobalt/debug/backend/content/css_agent.js
index 7745a6c..e7747b6 100644
--- a/src/cobalt/debug/backend/content/css_agent.js
+++ b/src/cobalt/debug/backend/content/css_agent.js
@@ -131,13 +131,5 @@
   this.matchedCSSRules = _matchedRules(node);
 }
 
-// Polyfill Element.matches()
-// https://developer.mozilla.org/en-US/docs/Web/API/Element/matches
-Element.prototype.matches = Element.prototype.matches || function(s) {
-  var matches = document.querySelectorAll(s), i = matches.length;
-  while (--i >= 0 && matches.item(i) != this) {}
-  return i > -1;
-};
-
 // TODO: Pass debugBackend from C++ instead of getting it from the window.
 })(window.debugBackend);
diff --git a/src/cobalt/debug/backend/content/runtime_agent.js b/src/cobalt/debug/backend/content/runtime_agent.js
new file mode 100644
index 0000000..f426e65
--- /dev/null
+++ b/src/cobalt/debug/backend/content/runtime_agent.js
@@ -0,0 +1,473 @@
+// Copyright 2016 The Cobalt Authors. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// This implementation of the "Runtime" Devtools protocol domain is only used
+// for mozjs. When using V8, we use the built-in inspector backend which
+// implements this for us.
+
+(function(debugBackend) {
+
+// Attach methods to handle commands in the 'Runtime' devtools domain.
+// https://chromedevtools.github.io/devtools-protocol/1-3/Runtime
+var commands = debugBackend.Runtime = {};
+
+// Calls a function on a previously accessed RemoteObject with an argument list
+// and returns a new RemoteObject. Used extensively by devtools for
+// auto-completion. The new RemoteObject uses the same |objectGroup| as the
+// original object.
+// https://chromedevtools.github.io/devtools-protocol/1-3/Runtime#method-callFunctionOn
+commands.callFunctionOn = function(params) {
+  var result = {};
+  var value = null;
+  try {
+    eval('var f = ' + params.functionDeclaration);
+    var objectEntry = _objectStore[params.objectId];
+    var thisArg = objectEntry.object;
+    var objectGroup = objectEntry.objectGroup;
+    value = f.apply(thisArg, params.arguments);
+    result.wasThrown = false;
+  } catch(e) {
+    value = e;
+    result.exceptionDetails = e;
+    result.wasThrown = true;
+  }
+
+  result.result =
+      new devtools.RemoteObject(value, objectGroup, params.returnByValue);
+  return JSON.stringify(result);
+}
+
+// Evaluates a string and returns a RemoteObject.
+// https://chromedevtools.github.io/devtools-protocol/1-3/Runtime#method-evaluate
+commands.evaluate = function(params) {
+  var result = {};
+  var value = null;
+  try {
+    if (params.includeCommandLineAPI) {
+      _addCommandLineAPI();
+    }
+
+    // Use |eval| indirectly, to cause evaluation at global scope.
+    // This is so subsequent calls can access variables declared here, etc.
+    var geval = eval;
+    value = geval(params.expression);
+
+    // Store the last result if we're doing a "real" evaluation, not an
+    // auto-complete. Seems a little special case-y, but this is taken from
+    // Chrome's implementation, and looks like the only way to differentiate.
+    if (params.objectGroup == 'console') {
+      _lastResult = value;
+    }
+
+    result.wasThrown = false;
+  } catch(e) {
+    value = e;
+    result.exceptionDetails = e;
+    result.wasThrown = true;
+  }
+
+  // Create the RemoteObject corresponding to the result.
+  result.result =
+      new devtools.RemoteObject(value, params.objectGroup, params.returnByValue);
+
+  // Add the preview, if requested.
+  if (params.generatePreview) {
+    var preview = _generatePreview(value);
+    if (preview) {
+      result.result.preview = preview;
+    }
+  }
+
+  if (params.includeCommandLineAPI) {
+    _removeCommandLineAPI();
+  }
+
+  return JSON.stringify(result);
+}
+
+// Returns all let, const and class variables from global scope.
+// https://chromedevtools.github.io/devtools-protocol/1-3/Runtime#method-globalLexicalScopeNames
+commands.globalLexicalScopeNames = function(params) {
+  var result = [];
+  // TODO: Get the globals.
+  return JSON.stringify(result);
+}
+
+// Returns the properties of a previously accessed object as an array of
+// PropertyDescriptor objects.
+// The parameters specifify several options:
+// * ownProperties - only include immediate properties, not the prototype chain.
+// * accessorPropertiesOnly - only include accessor properties.
+// https://chromedevtools.github.io/devtools-protocol/1-3/Runtime#method-getProperties
+commands.getProperties = function(params) {
+  var result = {};
+  var properties = [];
+  try {
+    var objectEntry = _objectStore[params.objectId];
+    var object = objectEntry.object;
+    var objectGroup = objectEntry.objectGroup;
+    _addProperties(object, objectGroup, !params.ownProperties, properties);
+
+    if (params.accessorPropertiesOnly) {
+      properties = properties.filter(function(element, index, array) {
+          return (element.get || element.set);
+        });
+    }
+    result.wasThrown = false;
+  } catch(e) {
+    value = e;
+    result.exceptionDetails = e;
+    result.wasThrown = true;
+  }
+
+  result.result = properties;
+  return JSON.stringify(result);
+}
+
+// Releases our reference to a previously accessed object.
+// https://chromedevtools.github.io/devtools-protocol/1-3/Runtime#method-releaseObject
+commands.releaseObject = function(params) {
+  delete _objectStore[params.objectId];
+}
+
+// Releases our references to a group of previously accessed objects.
+// https://chromedevtools.github.io/devtools-protocol/1-3/Runtime#method-releaseObjectGroup
+commands.releaseObjectGroup = function(params) {
+  for (var objectId in _objectStore) {
+    var objectEntry = _objectStore[objectId];
+    if (objectEntry && objectEntry.objectGroup == params.objectGroup) {
+      delete _objectStore[objectId];
+    }
+  }
+}
+
+// Adds the properties of |object| to the |result| array as new
+// PropertyDescriptor objects. Some properties may be objects themselves,
+// in which case new RemoteObjects are created using the specified
+// |objectGroup|, which should be that of |object|.
+// If |includePrototype| is set, the function will be called recursively on
+// the prototype chain of the object.
+var _addProperties = function(object, objectGroup, includePrototype, result) {
+  var properties = Object.getOwnPropertyNames(object);
+  var foundProto = false;
+  for (var i = 0; i < properties.length; i++) {
+    var key = properties[i];
+    foundProto = foundProto || (key == '__proto__');
+
+    // If we can't find the property, and its name corresponds to a number,
+    // try it as an array index (integer instead of string).
+    if (object[key] == null) {
+      if (!isNaN(key)) {
+        key = parseInt(key);
+      } else {
+        continue;
+      }
+    }
+
+    var propertyDescriptor =
+        new devtools.PropertyDescriptor(object, objectGroup, key);
+    result.push(propertyDescriptor);
+  }
+
+  var proto = null;
+  try {
+    proto = Object.getPrototypeOf(object);
+  } catch (e) {}
+
+  if (includePrototype) {
+    // Recursively add the properties from the prototype chain.
+    if (proto) {
+      _addProperties(proto, objectGroup, includePrototype, result);
+    }
+  } else if (proto && !foundProto) {
+    // |getOwnPropertyNames| may not include the object prototype,
+    // so if that's the case, add it now. It's a deprecated name, but devtools
+    // still uses it.
+    var propertyDescriptor =
+        new devtools.PropertyDescriptor(object, objectGroup, '__proto__');
+    result.push(propertyDescriptor);
+  }
+}
+
+// Gets an object from the internal object store.
+var _getObject = function(objectId) {
+  return _objectStore[objectId].object;
+}
+
+// Adds an object to the internal object store and returns a unique id that can
+// be used to access it again.
+var _addObject = function(object, objectGroup) {
+  // If we've already added this object, then use the same objectId.
+  for (var objectId in _objectStore) {
+    var objectEntry = _objectStore[objectId];
+    if (objectEntry.object === object &&
+        objectEntry.objectGroup == objectGroup) {
+      return objectId;
+    }
+  }
+
+  var objectId = _nextObjectId.toString();
+  _nextObjectId += 1;
+  _objectStore[objectId] = {};
+  _objectStore[objectId].object = object;
+  _objectStore[objectId].objectGroup = objectGroup;
+  return objectId;
+}
+
+// Generates an object preview, which may be requested for the evaluate
+// command.
+var _generatePreview = function(object) {
+  if (!object || (typeof object != 'object')) {
+    return null;
+  } else {
+    return new devtools.ObjectPreview(object);
+  }
+}
+
+// Returns the subtype of an object, or null if the specified value is not an
+// object.
+var _getSubtype = function(object) {
+  if (typeof object == 'object') {
+    if (object instanceof Array) {
+      return 'array';
+    } else if (object instanceof Date) {
+      return 'date';
+    } else if (object instanceof Error) {
+      return 'error';
+    } else if (object instanceof Node) {
+      return 'node';
+    } else if (object instanceof RegExp) {
+      return 'regexp';
+    }
+  }
+  return null;
+}
+
+// Tries to get the classname of an object by following the prototype chain
+// and looking for a constructor.
+var _getClassName = function(object) {
+  try {
+    for (var obj = object; obj && !this.className;
+         obj = Object.getPrototypeOf(obj)) {
+      if (obj.constructor) {
+        return obj.constructor.name;
+      }
+    }
+  } catch(e) {}
+
+  return null;
+}
+
+// Namespace for constructors of types defined in the Devtools protocol.
+var devtools = {};
+
+// Creates a RemoteObject, which is the type used to return many values to
+// devtools. If |value| is an object, then is it inserted into |_objectStore|
+// and the |objectId| key used to access it is included in the RemoteObject. If
+// |value| is not an object, or |returnByValue| is true, then |value| is
+// directly included in the RemoteObject.
+devtools.RemoteObject = function(value, objectGroup, returnByValue) {
+  this.type = typeof value;
+
+  if (value == null) {
+    this.subtype == 'null';
+    this.value = null;
+    return;
+  }
+
+  if (this.type == 'object') {
+    this.objectId = _addObject(value, objectGroup);
+    this.subtype = _getSubtype(value);
+    this.className = _getClassName(value);
+  }
+
+  // Fill in the description field. Devtools will only display arrays correctly
+  // if their description follows a particular format. For other values, try to
+  // use the generic string conversion, and fall back to the className if that
+  // fails.
+  if (this.subtype == 'array') {
+    this.description = 'Array[' + value.length + ']';
+  } else {
+    try {
+      this.description = value.toString();
+    } catch(e) {
+      this.description = this.className;
+    }
+  }
+
+  if (returnByValue || this.type != 'object') {
+    this.value = value;
+  }
+}
+
+// Creates a PropertyDescriptor for |property| of |object|, which is the type
+// used to return object properties to devtools. Some properties may be objects,
+// in which case new RemoteObjects are created and inserted into |_objectStore|
+// using the specified |objectGroup|, which should be that of |object|.
+devtools.PropertyDescriptor = function(object, objectGroup, property) {
+  this.name = property.toString();
+  var descriptor = Object.getOwnPropertyDescriptor(object, property);
+  // Some Cobalt objects don't seem to support |getOwnPropertyDescriptor|,
+  // so we handle that case in the else clause below.
+  if (descriptor) {
+    this.configurable = descriptor.configurable;
+    this.enumerable = descriptor.enumerable;
+    if (descriptor.get) {
+      this.get = new devtools.RemoteObject(descriptor.get, objectGroup, false);
+    }
+    if (descriptor.set) {
+      this.set = new devtools.RemoteObject(descriptor.set, objectGroup, false);
+    }
+    if (descriptor.value != null) {
+      this.value =
+          new devtools.RemoteObject(descriptor.value, objectGroup, false);
+    }
+    this.writable = descriptor.writable;
+  } else if (object[property] != null) {
+    this.configurable = false;
+    this.enumerable = object.propertyIsEnumerable(property);
+    if (object.__lookupGetter__(property)) {
+      this.get = object.__lookupGetter__(property);
+    }
+    if (object.__lookupSetter__(property)) {
+      this.set = object.__lookupSetter__(property);
+    }
+    this.value =
+        new devtools.RemoteObject(object[property], objectGroup, false);
+  }
+}
+
+// Creates an ObjectPreview, the type to represent a preview of an object,
+// which may be requested by devtools in the evaluate command.
+devtools.ObjectPreview = function(value) {
+  this.type = typeof value;
+  this.subtype = _getSubtype(value);
+  this.lossless = true;
+  this.overflow = false;
+  this.properties = [];
+
+  // Use the className as the preview description. This matches Chrome.
+  this.description = _getClassName(value);
+
+  // If we have an array-like object, add the array items, or append the
+  // length to the description if there's too many.
+  if (value.length != null) {
+    var MAX_ARRAY_ITEMS = 99;
+    if (value.length <= MAX_ARRAY_ITEMS) {
+      for (var i = 0; i < value.length; i++) {
+        var property = new devtools.PropertyPreview(i, value[i]);
+        this.properties.push(property);
+        if (typeof value[i] == 'object') {
+          this.lossless = false;
+        }
+      }
+    } else {
+      this.description += '[' + value.length + ']';
+      this.lossless = false;
+      this.overflow = true;
+    }
+    return;
+  }
+
+  // Add object properties, up to a maximum.
+  var MAX_PROPERTIES = 5;
+  var numProperties = 0;
+  for (var name in value) {
+    if (value[name] != null) {
+      if (++numProperties > MAX_PROPERTIES) {
+        this.lossless = false;
+        this.overflow = true;
+        break;
+      }
+      if (typeof property == 'object') {
+        this.lossless = false;
+      }
+      var property = new devtools.PropertyPreview(name, value[name]);
+      this.properties.push(property);
+    }
+  }
+}
+
+// Creates a PropertyPreview, the type to represent a preview of a single
+// object property.
+devtools.PropertyPreview = function(name, value) {
+  this.name = name.toString();
+  this.type = typeof value;
+
+  try {
+    this.value = value.toString();
+  } catch(e) {}
+
+  if (this.type == 'object') {
+    this.subtype = _getSubtype(value);
+  }
+}
+
+// The object store used to reference objects by internally generated id.
+var _objectStore = {};
+var _nextObjectId = 0;
+
+// The last evaluated result.
+var _lastResult = null;
+
+// Values in the global scope that have been overridden by corresponding
+// members of the Command Line API for the duration of an evaluation. We use
+// this to restore the original values after the evaluation.
+var _globalOverrides = {};
+
+// Command Line API implementation.
+// This is a set of convenience variables/functions that are not present in
+// the global scope by default, but can be specified as available to the
+// Runtime.evaluate function by the includeCommandLineAPI parameter.
+// https://developers.google.com/web/tools/chrome-devtools/console/utilities
+var _commandLineAPI = {};
+
+_commandLineAPI.$_ = _lastResult;
+
+_commandLineAPI.$ = document.querySelector.bind(document);
+
+_commandLineAPI.$$ = document.querySelectorAll.bind(document);
+
+_commandLineAPI.keys = Object.keys;
+
+_commandLineAPI.values = function(object) {
+  var keys = Object.keys(object);
+  var result = [];
+  for (var i = 0; i < keys.length; i++) {
+    result.push(object[keys[i]]);
+  }
+  return result;
+}
+
+var _addCommandLineAPI = function() {
+  _commandLineAPI.$_ = _lastResult;
+  for (var property in _commandLineAPI) {
+    if (_commandLineAPI.hasOwnProperty(property)) {
+      _globalOverrides[property] = window[property];
+      window[property] = _commandLineAPI[property];
+    }
+  }
+}
+
+var _removeCommandLineAPI = function() {
+  for (var property in _globalOverrides) {
+    if (_globalOverrides.hasOwnProperty(property)) {
+      window[property] = _globalOverrides[property];
+      delete _globalOverrides[property];
+    }
+  }
+}
+
+// TODO: Pass debugBackend from C++ instead of getting it from the window.
+})(window.debugBackend);
diff --git a/src/cobalt/debug/backend/debug_module.cc b/src/cobalt/debug/backend/debug_module.cc
index 1b82307..e1849a9 100644
--- a/src/cobalt/debug/backend/debug_module.cc
+++ b/src/cobalt/debug/backend/debug_module.cc
@@ -12,10 +12,10 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-#include <memory>
-
 #include "cobalt/debug/backend/debug_module.h"
 
+#include <memory>
+
 #include "cobalt/debug/backend/render_layer.h"
 
 namespace cobalt {
@@ -24,6 +24,7 @@
 
 namespace {
 constexpr char kScriptDebuggerAgent[] = "ScriptDebuggerAgent";
+constexpr char kRuntimeAgent[] = "RuntimeAgent";
 constexpr char kConsoleAgent[] = "ConsoleAgent";
 constexpr char kLogAgent[] = "LogAgent";
 constexpr char kDomAgent[] = "DomAgent";
@@ -154,6 +155,10 @@
   // directly handle one or more protocol domains.
   script_debugger_agent_.reset(
       new ScriptDebuggerAgent(debug_dispatcher_.get(), script_debugger_.get()));
+  if (!script_debugger_agent_->IsSupportedDomain("Runtime")) {
+    runtime_agent_.reset(
+        new RuntimeAgent(debug_dispatcher_.get(), data.window));
+  }
   console_agent_.reset(new ConsoleAgent(debug_dispatcher_.get(), data.console));
   log_agent_.reset(new LogAgent(debug_dispatcher_.get()));
   dom_agent_.reset(
@@ -183,6 +188,9 @@
                                      : data.debugger_state->agents_state.get();
   script_debugger_agent_->Thaw(
       RemoveAgentState(kScriptDebuggerAgent, agents_state));
+  if (runtime_agent_) {
+    runtime_agent_->Thaw(RemoveAgentState(kRuntimeAgent, agents_state));
+  }
   console_agent_->Thaw(RemoveAgentState(kConsoleAgent, agents_state));
   log_agent_->Thaw(RemoveAgentState(kLogAgent, agents_state));
   dom_agent_->Thaw(RemoveAgentState(kDomAgent, agents_state));
@@ -207,6 +215,9 @@
   base::DictionaryValue* agents_state = debugger_state->agents_state.get();
   StoreAgentState(agents_state, kScriptDebuggerAgent,
                   script_debugger_agent_->Freeze());
+  if (runtime_agent_) {
+    StoreAgentState(agents_state, kRuntimeAgent, runtime_agent_->Freeze());
+  }
   StoreAgentState(agents_state, kConsoleAgent, console_agent_->Freeze());
   StoreAgentState(agents_state, kLogAgent, log_agent_->Freeze());
   StoreAgentState(agents_state, kDomAgent, dom_agent_->Freeze());
diff --git a/src/cobalt/debug/backend/debug_module.h b/src/cobalt/debug/backend/debug_module.h
index 6abfa5c..ccf942c 100644
--- a/src/cobalt/debug/backend/debug_module.h
+++ b/src/cobalt/debug/backend/debug_module.h
@@ -29,6 +29,7 @@
 #include "cobalt/debug/backend/log_agent.h"
 #include "cobalt/debug/backend/page_agent.h"
 #include "cobalt/debug/backend/render_overlay.h"
+#include "cobalt/debug/backend/runtime_agent.h"
 #include "cobalt/debug/backend/script_debugger_agent.h"
 #include "cobalt/debug/backend/tracing_agent.h"
 #include "cobalt/debug/json_object.h"
@@ -140,6 +141,7 @@
   std::unique_ptr<DOMAgent> dom_agent_;
   scoped_refptr<CSSAgent> css_agent_;
   std::unique_ptr<PageAgent> page_agent_;
+  std::unique_ptr<RuntimeAgent> runtime_agent_;
   std::unique_ptr<ScriptDebuggerAgent> script_debugger_agent_;
   std::unique_ptr<TracingAgent> tracing_agent_;
 };
diff --git a/src/cobalt/debug/backend/runtime_agent.cc b/src/cobalt/debug/backend/runtime_agent.cc
new file mode 100644
index 0000000..70c7acb
--- /dev/null
+++ b/src/cobalt/debug/backend/runtime_agent.cc
@@ -0,0 +1,90 @@
+// Copyright 2016 The Cobalt Authors. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#include "cobalt/debug/backend/runtime_agent.h"
+
+#include <string>
+
+#include "base/bind.h"
+
+namespace cobalt {
+namespace debug {
+namespace backend {
+
+namespace {
+// Definitions from the set specified here:
+// https://chromedevtools.github.io/devtools-protocol/tot/Runtime
+constexpr char kInspectorDomain[] = "Runtime";
+
+// File to load JavaScript runtime implementation from.
+constexpr char kScriptFile[] = "runtime_agent.js";
+}  // namespace
+
+RuntimeAgent::RuntimeAgent(DebugDispatcher* dispatcher, dom::Window* window)
+    : dispatcher_(dispatcher),
+      window_(window),
+      ALLOW_THIS_IN_INITIALIZER_LIST(commands_(this, kInspectorDomain)) {
+  DCHECK(dispatcher_);
+  if (!dispatcher_->RunScriptFile(kScriptFile)) {
+    DLOG(WARNING) << "Cannot execute Runtime initialization script.";
+  }
+
+  commands_["enable"] = &RuntimeAgent::Enable;
+  commands_["disable"] = &RuntimeAgent::Disable;
+  commands_["compileScript"] = &RuntimeAgent::CompileScript;
+}
+
+void RuntimeAgent::Thaw(JSONObject agent_state) {
+  dispatcher_->AddDomain(kInspectorDomain, commands_.Bind());
+  script_loaded_ = dispatcher_->RunScriptFile(kScriptFile);
+  DLOG_IF(ERROR, !script_loaded_) << "Failed to load " << kScriptFile;
+}
+
+JSONObject RuntimeAgent::Freeze() {
+  dispatcher_->RemoveDomain(kInspectorDomain);
+  return JSONObject();
+}
+
+void RuntimeAgent::Enable(const Command& command) {
+  if (!script_loaded_) {
+    command.SendErrorResponse(Command::kInternalError,
+                              "Cannot create Runtime inspector.");
+    return;
+  }
+
+  // Send an executionContextCreated event.
+  // https://chromedevtools.github.io/devtools-protocol/1-3/Runtime#event-executionContextCreated
+  JSONObject params(new base::DictionaryValue());
+  params->SetInteger("context.id", 1);
+  params->SetString("context.origin", window_->location()->origin());
+  params->SetString("context.name", "Cobalt");
+  params->SetBoolean("context.auxData.isDefault", true);
+  dispatcher_->SendEvent(
+      std::string(kInspectorDomain) + ".executionContextCreated", params);
+
+  command.SendResponse();
+}
+
+void RuntimeAgent::Disable(const Command& command) { command.SendResponse(); }
+
+void RuntimeAgent::CompileScript(const Command& command) {
+  // TODO: Parse the JS without eval-ing it... This is to support:
+  // a) Multi-line input from the devtools console
+  // b) https://developers.google.com/web/tools/chrome-devtools/snippets
+  command.SendResponse();
+}
+
+}  // namespace backend
+}  // namespace debug
+}  // namespace cobalt
diff --git a/src/cobalt/debug/backend/runtime_agent.h b/src/cobalt/debug/backend/runtime_agent.h
new file mode 100644
index 0000000..3be3f37
--- /dev/null
+++ b/src/cobalt/debug/backend/runtime_agent.h
@@ -0,0 +1,58 @@
+// Copyright 2016 The Cobalt Authors. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#ifndef COBALT_DEBUG_BACKEND_RUNTIME_AGENT_H_
+#define COBALT_DEBUG_BACKEND_RUNTIME_AGENT_H_
+
+#include "cobalt/debug/backend/command_map.h"
+#include "cobalt/debug/backend/debug_dispatcher.h"
+#include "cobalt/debug/command.h"
+#include "cobalt/debug/json_object.h"
+#include "cobalt/dom/window.h"
+
+namespace cobalt {
+namespace debug {
+namespace backend {
+
+// Implements a small part of the the "Runtime" inspector protocol domain with
+// just enough to support console input. When using the V8 JavaScript engine,
+// this class is not needed since the V8 inspector implements the Runtime domain
+// for us.
+class RuntimeAgent {
+ public:
+  RuntimeAgent(DebugDispatcher* dispatcher, dom::Window* window);
+
+  void Thaw(JSONObject agent_state);
+  JSONObject Freeze();
+
+ private:
+  void CompileScript(const Command& command);
+  void Disable(const Command& command);
+  void Enable(const Command& command);
+
+  DebugDispatcher* dispatcher_;
+  dom::Window* window_;
+
+  // Map of member functions implementing commands.
+  CommandMap<RuntimeAgent> commands_;
+
+  // Whether we successfully loaded the agent's JavaScript implementation.
+  bool script_loaded_ = false;
+};
+
+}  // namespace backend
+}  // namespace debug
+}  // namespace cobalt
+
+#endif  // COBALT_DEBUG_BACKEND_RUNTIME_AGENT_H_
diff --git a/src/cobalt/debug/debug.gyp b/src/cobalt/debug/debug.gyp
index c4d50ff..a59acd7 100644
--- a/src/cobalt/debug/debug.gyp
+++ b/src/cobalt/debug/debug.gyp
@@ -44,6 +44,8 @@
         'backend/render_layer.h',
         'backend/render_overlay.cc',
         'backend/render_overlay.h',
+        'backend/runtime_agent.cc',
+        'backend/runtime_agent.h',
         'backend/script_debugger_agent.cc',
         'backend/script_debugger_agent.h',
         'backend/tracing_agent.cc',
diff --git a/src/cobalt/doc/device_authentication.md b/src/cobalt/doc/device_authentication.md
new file mode 100644
index 0000000..d121237
--- /dev/null
+++ b/src/cobalt/doc/device_authentication.md
@@ -0,0 +1,47 @@
+# Device Authentication
+
+Starting in Cobalt 20, initial URL requests will now have query parameters
+appended to them signed by the platform's secret key, provided to them during
+the certification process.  The key must be stored in secure storage on the
+device.
+
+## Message
+
+When constructing the URL for the initial browse request, according to the
+logic in
+[cobalt/browser/device_authentication.cc](../browser/device_authentication.cc),
+it will fetch from the platform a "certification scope" string provided to
+the device during certification.  The certification scope will be queried
+by a call to `SbSystemGetProperty(kSbSystemPropertyCertificationScope, ...)`,
+which the platform is expected to implement.  Along with the current system
+time, this forms the message that must be signed by the device's secret key.
+
+## Signing
+
+The message defined above must be signed with the HMAC-SHA256 algorithm. The
+resulting digest (encoded as base64), alongside the unencrypted message
+contents, will be appended to the initial URL.
+
+Two choices exists for how platforms can expose the secret key to Cobalt.
+Cobalt will first attempt to have the platform sign the message, and if that
+functionality is not implemented Cobalt will query the platform for the secret
+key and sign the message itself.  If neither choice is implemented, then Cobalt
+will log a warning and not append anything to the URL.
+
+### Platform signing
+
+Cobalt will first attempt to use the `SbSystemSignWithCertificationSecretKey()`
+function to sign the message using the secret key.  This method is preferred
+since it enables implementations where the key exists only in secure hardware
+and never enters the system's main memory.  A reference implementation, which
+depends on BoringSSL exists at
+[starboard/linux/x64x11/internal/system_sign_with_certification_secret_key.cc](../../starboard/linux/x64x11/internal/system_sign_with_certification_secret_key.cc).
+
+### Cobalt signing
+
+If the function `SbSystemSignWithCertificationSecretKey()` is unimplemented (e.g. it returns `false`, as is done in
+[starboard/shared/stub/system_sign_with_certification_secret_key.cc](../../starboard/shared/stub/system_sign_with_certification_secret_key.cc)),
+then Cobalt will instead attempt to retrieve the secret key from the system by
+a call to
+`SbSystemGetProperty(kSbSystemPropertyBase64EncodedCertificationSecret, ...)`,
+and use it to produce the HMAC-SHA256 digest of the message itself.
diff --git a/src/cobalt/doc/performance_tuning.md b/src/cobalt/doc/performance_tuning.md
index 5a7abab..e6d9994 100644
--- a/src/cobalt/doc/performance_tuning.md
+++ b/src/cobalt/doc/performance_tuning.md
@@ -408,11 +408,12 @@
 1. The command line option, "--timed_trace=XX" will instruct Cobalt to trace
    upon startup, for XX seconds (e.g. "--timed_trace=25").  When completed,
    the output will be written to the file `timed_trace.json`.
-2. Using the debug console (hit CTRL+O on a keyboard once or twice), type in the
-   command "d.trace()" and hit enter.  Cobalt will begin a trace.  After
-   some time has passed (and presumably you have performed some actions), you
-   can open the debug console again and type "d.trace()" again to end the trace.
-   The trace output will be written to the file `triggered_trace.json`.
+2. Using the debug console (hit CTRL+O on a keyboard once or twice), type in
+   the command "h5vcc.traceEvent.start()" and hit enter.  Cobalt will begin a
+   trace.  After some time has passed (and presumably you have performed some
+   actions), you can open the debug console again and type
+   "h5vcc.traceEvent.stop()" again to end the trace.
+   The trace output will be written to the file `h5vcc_trace_event.json`.
 
 The directory the output files will be placed within is the directory that the
 Starboard function `SbSystemGetPath()` returns with a `path_id` of
diff --git a/src/cobalt/doc/web_debugging.md b/src/cobalt/doc/web_debugging.md
new file mode 100644
index 0000000..ca1d90d
--- /dev/null
+++ b/src/cobalt/doc/web_debugging.md
@@ -0,0 +1,176 @@
+# Cobalt Web Debugging
+
+## Overview
+
+Cobalt includes the [Chrome
+DevTools](https://developers.google.com/web/tools/chrome-devtools/) frontend for
+debugging web apps. It's available in the **20.lts.1+** and newer branches of
+Cobalt.
+
+Cobalt only supports a subset of what DevTools can do, but we make a point of
+hiding UI elements that don't work so everything you see in the UI should work.
+As we get more implemented in the backend the respective UI will be enabled in
+the frontend.
+
+The following panels are supported:
+
+*   **Elements** - view the DOM tree and CSS styles
+*   **Console** - JavaScript "command line" and logging output
+*   **Sources** - interactive JavaScript debugging
+*   **Performance** - profile JavaScript execution
+
+> Cobalt DevTools relies heavily on V8 for its backend implementation. When
+> Cobalt is built with MozJs only basic Elements and Console functionality is
+> supported, but the UI remains the same as when building with V8 and some
+> things don't work.
+
+## Using DevTools
+
+The DevTools frontend is loaded in Chrome from a small HTTP server built into
+**non-gold** Cobalt. Even though it looks mostly the same as Chrome's inspector
+(it's built from the same source code), Cobalt's DevTools is a separate app,
+and Cobalt is *not* a remote target that you can debug with Chrome's built-in
+debugger.
+
+After building and running Cobalt as usual, use Chrome on your desktop to load
+the start page from port 9222 on the target device where Cobalt is running.
+Click through to the only inspectable page shown on the start page.
+
+> If you have trouble connecting:
+> * Ensure you have an IP route from your desktop to the target device that
+>   allows traffic on the debugging port (default 9222).
+> * If both IPv4 andIPv6 networks are available, the debug server will prefer to
+>   bind to the IPv4 network interface.
+> * If you are running Cobalt locally on your desktop, then use your actual IP
+>   address (not localhost nor 127.0.0.1).
+
+If you're not sure what IP address to use, look in the terminal log output for a
+message telling you the URL of Cobalt's DevTools (which you may be able to open
+with a ctrl-click in many terminal programs):
+
+```
+---------------------------------
+ Connect to the web debugger at:
+ http://192.168.1.1:9222
+---------------------------------
+```
+
+### Wait for web debugger
+
+If you're debugging the initial page as it's loading you need use the
+`--wait_for_web_debugger` switch to tell Cobalt to wait until you attach
+DevTools before actually loading the initial URL:
+
+```
+out/linux-x64x11_devel/cobalt --wait_for_web_debugger --url="http://test.example.com"
+```
+
+When this switch is specified, Cobalt will appear to hang with just a black
+window until you load DevTools. In the terminal log output you'll see that
+Cobalt is waiting with message like:
+
+```
+-------------------------------------
+ Waiting for web debugger to connect
+-------------------------------------
+```
+
+If you're debugging a page in a series of redirects, you can specify a number to
+make Cobalt wait before loading the Nth page. If no number is specified with the
+switch, the default value is 1 to wait before the initial page load. For
+example:
+
+```
+out/linux-x64x11_devel/cobalt --wait_for_web_debugger=2 --url="http://test.example.com"
+```
+
+## Panels
+
+### Elements
+
+The Elements panel displays the DOM as a tree with expandable nodes to dig into
+it. The right side bar shows the CSS styles affecting the selected node in the
+DOM. The *Styles* tab shows matching rules, inherited rules, and inline style.
+The *Computed* tab shows the computed style for the selected node. The box model
+properties are shown graphically in both the *Styles* and *Computed* tabs.
+
+> Cobalt currently only supports a read-only view of the DOM and CSS.
+
+Chrome docs:
+
+*   https://developers.google.com/web/tools/chrome-devtools/dom/
+*   https://developers.google.com/web/tools/chrome-devtools/css/
+
+### Console
+
+Cobalt has two consoles:
+* Overlay console in Cobalt itself (shown with ctrl-O or F1).
+* Remote console shown in a connected DevTools session.
+
+Both console UIs show messages logged from JavaScript (with `console.log()`,
+etc.), and have a command line to evaluate arbitrary JavaScript in the context
+of the page being debugged.
+
+The overlay console also shows non-JavaScript logging from Cobalt itself, which
+is mostly interesting to Cobalt developers rather than web app developers.
+
+The console in DevTools is a richer UI that can show evaluated objects with an
+expander so you can dig in to their properties. Logging from JavaScript with
+`console.log()` can show objects and exceptions as well, in contrast to the
+text-only messages shown in the console overlay.
+
+> There may be some things (e.g.  timers) that still need to be hooked up to the
+> V8 backend, so please file a bug if something isn't working as expected.
+
+> When built with MozJs instead of V8, the functionality of the console is
+> limited to showing only text log messages.
+
+Chrome docs:
+
+*   https://developers.google.com/web/tools/chrome-devtools/console/
+
+### Sources
+
+Source-level JavaScript debugging can be done on the Sources panel. You can
+inspect sources, set breakpoints, see call stacks and scoped variables, add
+watch expressions, and all that good stuff.
+
+> Source debugging only works when Cobalt is built with V8.
+
+Chrome docs:
+
+*   https://developers.google.com/web/tools/chrome-devtools/javascript/
+
+### Performance
+
+The Performance panel allows you to record a profile of sampled call stacks
+while Cobalt is running your JavaScript code. The recorded profile is displayed
+in a flame chart showing the relationship and timing of function calls.
+
+> Performance profiling only works when Cobalt is built with V8, and the
+> platform implements the `SbThreadSampler` Starboard API.
+
+> The profiler can't currently identify which is the main thread, but you can
+> easily see it as the one with the most events.
+
+Chrome docs:
+
+*   https://developers.google.com/web/tools/chrome-devtools/evaluate-performance/
+
+## Tips
+
+*   Don't open Cobalt's console overlay before attaching the remote DevTools as
+    that can cause the latter not to work.
+
+*   You can make Cobalt reload the current page by pressing F5 in the Cobalt
+    window, or ctrl-R in the remote DevTools. This may be useful for debugging
+    startup code in the web app. It may also help in case some source file is
+    not appearing in the DevTools Sources panel.
+
+*   The DevTools frontend remembers your breakpoints, so if you need to restart
+    Cobalt completely you can just kill it with ctrl-C in the terminal where you
+    launched it and re-run it. Then click the *Reconnect DevTools* button shown
+    in the DevTools UI or refresh the page to reload the DevTools UI.
+
+*   You can use the `--remote_debugging_port` command line switch to specify a
+    remote debugging port other than the default 9222.
diff --git a/src/cobalt/dom/c_val_key_list.cc b/src/cobalt/dom/c_val_key_list.cc
deleted file mode 100644
index 859f662..0000000
--- a/src/cobalt/dom/c_val_key_list.cc
+++ /dev/null
@@ -1,44 +0,0 @@
-// Copyright 2016 The Cobalt Authors. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#include "cobalt/dom/c_val_key_list.h"
-
-#include <algorithm>
-#include <iterator>
-
-namespace cobalt {
-namespace dom {
-
-CValKeyList::CValKeyList() {}
-
-base::Optional<std::string> CValKeyList::Item(uint32 item) {
-  if (item < keys_.size()) {
-    return keys_[item];
-  }
-  return base::nullopt;
-}
-
-uint32 CValKeyList::length() { return static_cast<uint32>(keys_.size()); }
-
-int32 CValKeyList::IndexOf(const std::string& key) {
-  auto iter = std::find(keys_.begin(), keys_.end(), key);
-  return iter == keys_.end()
-             ? -1
-             : static_cast<int32>(std::distance(keys_.begin(), iter));
-}
-
-void CValKeyList::AppendKey(const std::string& key) { keys_.push_back(key); }
-
-}  // namespace dom
-}  // namespace cobalt
diff --git a/src/cobalt/dom/c_val_key_list.h b/src/cobalt/dom/c_val_key_list.h
deleted file mode 100644
index 1eb3cbb..0000000
--- a/src/cobalt/dom/c_val_key_list.h
+++ /dev/null
@@ -1,48 +0,0 @@
-// Copyright 2016 The Cobalt Authors. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#ifndef COBALT_DOM_C_VAL_KEY_LIST_H_
-#define COBALT_DOM_C_VAL_KEY_LIST_H_
-
-#include <string>
-#include <vector>
-
-#include "base/optional.h"
-#include "cobalt/script/wrappable.h"
-
-namespace cobalt {
-namespace dom {
-
-class CValKeyList : public script::Wrappable {
- public:
-  CValKeyList();
-
-  base::Optional<std::string> Item(uint32 item);
-  uint32 length();
-  int32 IndexOf(const std::string& key);
-
-  void AppendKey(const std::string& key);
-
-  DEFINE_WRAPPABLE_TYPE(CValKeyList);
-
- private:
-  std::vector<std::string> keys_;
-
-  DISALLOW_COPY_AND_ASSIGN(CValKeyList);
-};
-
-}  // namespace dom
-}  // namespace cobalt
-
-#endif  // COBALT_DOM_C_VAL_KEY_LIST_H_
diff --git a/src/cobalt/dom/c_val_view.cc b/src/cobalt/dom/c_val_view.cc
index 577eecf..37c08c1 100644
--- a/src/cobalt/dom/c_val_view.cc
+++ b/src/cobalt/dom/c_val_view.cc
@@ -14,23 +14,21 @@
 
 #include "cobalt/dom/c_val_view.h"
 
-#include <set>
+#include <algorithm>
 
 #include "cobalt/base/c_val.h"
+#include "cobalt/base/polymorphic_downcast.h"
+#include "cobalt/dom/dom_settings.h"
 
 namespace cobalt {
 namespace dom {
 
 CValView::CValView() {}
 
-scoped_refptr<CValKeyList> CValView::Keys() {
-  scoped_refptr<CValKeyList> key_list(new CValKeyList);
-  typedef std::set<std::string> CValKeySet;
-  CValKeySet key_set = base::CValManager::GetInstance()->GetOrderedCValNames();
-  for (CValKeySet::iterator key_iter = key_set.begin();
-       key_iter != key_set.end(); ++key_iter) {
-    key_list->AppendKey(*key_iter);
-  }
+script::Sequence<std::string> CValView::Keys() {
+  auto key_set = base::CValManager::GetInstance()->GetOrderedCValNames();
+  script::Sequence<std::string> key_list;
+  std::copy(key_set.begin(), key_set.end(), std::back_inserter(key_list));
   return key_list;
 }
 
diff --git a/src/cobalt/dom/c_val_view.h b/src/cobalt/dom/c_val_view.h
index cb1565b..50905ee 100644
--- a/src/cobalt/dom/c_val_view.h
+++ b/src/cobalt/dom/c_val_view.h
@@ -19,8 +19,8 @@
 
 #include "base/memory/ref_counted.h"
 #include "base/optional.h"
-#include "cobalt/dom/c_val_key_list.h"
 #include "cobalt/script/wrappable.h"
+#include "cobalt/script/sequence.h"
 
 namespace cobalt {
 namespace dom {
@@ -29,7 +29,7 @@
  public:
   CValView();
 
-  scoped_refptr<CValKeyList> Keys();
+  script::Sequence<std::string> Keys();
   base::Optional<std::string> GetValue(const std::string& name);
   std::string GetPrettyValue(const std::string& name);
 
diff --git a/src/cobalt/dom/c_val_view.idl b/src/cobalt/dom/c_val_view.idl
index dddb584..7dbcbc2 100644
--- a/src/cobalt/dom/c_val_view.idl
+++ b/src/cobalt/dom/c_val_view.idl
@@ -14,7 +14,7 @@
 
 // This is a non-standard API, used to access Cobalt's CVal system.
 interface CValView {
-  [NewObject] CValKeyList keys();
+  [NewObject] sequence<DOMString> keys();
   DOMString? getValue(DOMString name);
   DOMString getPrettyValue(DOMString name);
 };
diff --git a/src/cobalt/dom/document.cc b/src/cobalt/dom/document.cc
index 09f158f..f14bfa4 100644
--- a/src/cobalt/dom/document.cc
+++ b/src/cobalt/dom/document.cc
@@ -927,7 +927,7 @@
 
     scoped_refptr<HTMLHtmlElement> current_html = html();
     if (current_html) {
-      current_html->ClearRuleMatchingStateOnElementAndDescendants();
+      current_html->ClearRuleMatchingStateOnElementAndSiblingsAndDescendants();
     }
 
     is_selector_tree_dirty_ = false;
diff --git a/src/cobalt/dom/dom.gyp b/src/cobalt/dom/dom.gyp
index f20646d..569d9eb 100644
--- a/src/cobalt/dom/dom.gyp
+++ b/src/cobalt/dom/dom.gyp
@@ -39,8 +39,6 @@
         'blob_property_bag.h',
         'buffer_source.cc',
         'buffer_source.h',
-        'c_val_key_list.cc',
-        'c_val_key_list.h',
         'c_val_view.cc',
         'c_val_view.h',
         'camera_3d.cc',
diff --git a/src/cobalt/dom/element.cc b/src/cobalt/dom/element.cc
index 04aff96..2c576e1 100644
--- a/src/cobalt/dom/element.cc
+++ b/src/cobalt/dom/element.cc
@@ -32,8 +32,10 @@
 #include "cobalt/dom/html_element_context.h"
 #include "cobalt/dom/mutation_reporter.h"
 #include "cobalt/dom/named_node_map.h"
+#include "cobalt/dom/node.h"
 #include "cobalt/dom/parser.h"
 #include "cobalt/dom/pointer_state.h"
+#include "cobalt/dom/rule_matching.h"
 #include "cobalt/dom/serializer.h"
 #include "cobalt/dom/text.h"
 #include "cobalt/math/rect_f.h"
@@ -106,6 +108,36 @@
   return HasAttribute(name);
 }
 
+bool Element::Matches(const std::string& selectors,
+                             script::ExceptionState* exception_state) {
+  TRACK_MEMORY_SCOPE("DOM");
+  // Referenced from:
+  // https://dom.spec.whatwg.org/#dom-element-matches
+
+  // 1. Let s be the result of parse a selector from selectors.
+  cssom::CSSParser* css_parser =
+      this->node_document()->html_element_context()->css_parser();
+  scoped_refptr<cssom::CSSRule> css_rule =
+      css_parser->ParseRule(selectors + " {}", this->GetInlineSourceLocation());
+
+  // 2. If s is failure, throw a "SyntaxError" DOMException.
+  if (!css_rule) {
+    DOMException::Raise(dom::DOMException::kSyntaxErr, exception_state);
+    return false;
+  }
+  scoped_refptr<cssom::CSSStyleRule> css_style_rule =
+      css_rule->AsCSSStyleRule();
+  if (!css_style_rule) {
+    DOMException::Raise(dom::DOMException::kSyntaxErr, exception_state);
+    return false;
+  }
+
+  // 3. Return true if the result of match a selector against an element,
+  //    using s, element, and :scope element context object, returns success,
+  //    and false otherwise.
+  return MatchRuleAndElement(css_style_rule, this);
+}
+
 scoped_refptr<NamedNodeMap> Element::attributes() {
   TRACK_MEMORY_SCOPE("DOM");
   scoped_refptr<NamedNodeMap> named_node_map = named_node_map_.get();
diff --git a/src/cobalt/dom/element.h b/src/cobalt/dom/element.h
index d37f9bc..a0c50e2 100644
--- a/src/cobalt/dom/element.h
+++ b/src/cobalt/dom/element.h
@@ -99,6 +99,7 @@
                                              const std::string& name) const;
   bool HasAttributeNS(const std::string& namespace_uri,
                       const std::string& name) const;
+  bool Matches(const std::string& selectors,script::ExceptionState* exception_state);
 
   scoped_refptr<HTMLCollection> GetElementsByTagName(
       const std::string& local_name) const;
diff --git a/src/cobalt/dom/element.idl b/src/cobalt/dom/element.idl
index f6a0ca4..af71ed6 100644
--- a/src/cobalt/dom/element.idl
+++ b/src/cobalt/dom/element.idl
@@ -29,6 +29,7 @@
   boolean hasAttribute(DOMString name);
   boolean hasAttributeNS(DOMString namespace_uri, DOMString localName);
   DOMString? getAttributeNS(DOMString namespace_uri, DOMString name);
+  [RaisesException] boolean matches(DOMString selectors);
   HTMLCollection getElementsByTagName(DOMString localName);
   HTMLCollection getElementsByClassName(DOMString classNames);
 };
diff --git a/src/cobalt/dom/element_intersection_observer_module.cc b/src/cobalt/dom/element_intersection_observer_module.cc
index 01fb8a3..d7ce51b 100644
--- a/src/cobalt/dom/element_intersection_observer_module.cc
+++ b/src/cobalt/dom/element_intersection_observer_module.cc
@@ -14,6 +14,8 @@
 
 #include "cobalt/dom/element_intersection_observer_module.h"
 
+#include <algorithm>
+
 #include "cobalt/dom/document.h"
 #include "cobalt/dom/dom_rect_read_only.h"
 #include "cobalt/dom/element.h"
@@ -29,11 +31,10 @@
 
 void ElementIntersectionObserverModule::RegisterIntersectionObserverForRoot(
     IntersectionObserver* observer) {
-  for (auto it = root_registered_intersection_observers_.begin();
-       it != root_registered_intersection_observers_.end(); ++it) {
-    if (*it == observer) {
-      return;
-    }
+  auto it = std::find(root_registered_intersection_observers_.begin(),
+                      root_registered_intersection_observers_.end(), observer);
+  if (it != root_registered_intersection_observers_.end()) {
+    return;
   }
   root_registered_intersection_observers_.push_back(
       base::WrapRefCounted(observer));
@@ -50,13 +51,12 @@
 
 void ElementIntersectionObserverModule::UnregisterIntersectionObserverForRoot(
     IntersectionObserver* observer) {
-  for (auto it = root_registered_intersection_observers_.begin();
-       it != root_registered_intersection_observers_.end(); ++it) {
-    if (*it == observer) {
-      root_registered_intersection_observers_.erase(it);
-      InvalidateLayoutBoxesForElement();
-      return;
-    }
+  auto it = std::find(root_registered_intersection_observers_.begin(),
+                      root_registered_intersection_observers_.end(), observer);
+  if (it != root_registered_intersection_observers_.end()) {
+    root_registered_intersection_observers_.erase(it);
+    InvalidateLayoutBoxesForElement();
+    return;
   }
   NOTREACHED()
       << "Did not find an intersection observer to unregister for the root.";
@@ -64,11 +64,11 @@
 
 void ElementIntersectionObserverModule::RegisterIntersectionObserverForTarget(
     IntersectionObserver* observer) {
-  for (auto it = target_registered_intersection_observers_.begin();
-       it != target_registered_intersection_observers_.end(); ++it) {
-    if (*it == observer) {
-      return;
-    }
+  auto it =
+      std::find(target_registered_intersection_observers_.begin(),
+                target_registered_intersection_observers_.end(), observer);
+  if (it != target_registered_intersection_observers_.end()) {
+    return;
   }
   target_registered_intersection_observers_.push_back(
       base::WrapRefCounted(observer));
@@ -79,14 +79,14 @@
 
 void ElementIntersectionObserverModule::UnregisterIntersectionObserverForTarget(
     IntersectionObserver* observer) {
-  for (auto it = target_registered_intersection_observers_.begin();
-       it != target_registered_intersection_observers_.end(); ++it) {
-    if (*it == observer) {
-      target_registered_intersection_observers_.erase(it);
-      RemoveLayoutTargetForObserver(observer);
-      InvalidateLayoutBoxesForElement();
-      return;
-    }
+  auto it =
+      std::find(target_registered_intersection_observers_.begin(),
+                target_registered_intersection_observers_.end(), observer);
+  if (it != target_registered_intersection_observers_.end()) {
+    target_registered_intersection_observers_.erase(it);
+    RemoveLayoutTargetForObserver(observer);
+    InvalidateLayoutBoxesForElement();
+    return;
   }
   NOTREACHED()
       << "Did not find an intersection observer to unregister for the target.";
diff --git a/src/cobalt/dom/eme/media_key_session.cc b/src/cobalt/dom/eme/media_key_session.cc
index f20e528..8cf2253 100644
--- a/src/cobalt/dom/eme/media_key_session.cc
+++ b/src/cobalt/dom/eme/media_key_session.cc
@@ -41,10 +41,8 @@
     : ALLOW_THIS_IN_INITIALIZER_LIST(event_queue_(this)),
       drm_system_(drm_system),
       drm_system_session_(drm_system->CreateSession(
-#if SB_HAS(DRM_KEY_STATUSES)
           base::Bind(&MediaKeySession::OnSessionUpdateKeyStatuses,
                      base::AsWeakPtr(this))
-#endif  // SB_HAS(DRM_KEY_STATUSES)
 #if SB_HAS(DRM_SESSION_CLOSED)
               ,
           base::Bind(&MediaKeySession::OnSessionClosed,
diff --git a/src/cobalt/dom/html_element.cc b/src/cobalt/dom/html_element.cc
index 636ef72..c52faae8 100644
--- a/src/cobalt/dom/html_element.cc
+++ b/src/cobalt/dom/html_element.cc
@@ -910,6 +910,24 @@
   }
 }
 
+void HTMLElement::ClearRuleMatchingStateOnElementAndSiblingsAndDescendants() {
+  HTMLElement::ClearRuleMatchingStateOnElementAndDescendants();
+  for (Element* element = previous_element_sibling(); element;
+       element = element->previous_element_sibling()) {
+    HTMLElement* html_element = element->AsHTMLElement();
+    if (html_element) {
+      html_element->ClearRuleMatchingStateOnElementAndDescendants();
+    }
+  }
+  for (Element* element = next_element_sibling(); element;
+       element = element->next_element_sibling()) {
+    HTMLElement* html_element = element->AsHTMLElement();
+    if (html_element) {
+      html_element->ClearRuleMatchingStateOnElementAndDescendants();
+    }
+  }
+}
+
 void HTMLElement::InvalidateMatchingRulesRecursively() {
   InvalidateMatchingRulesRecursivelyInternal(true /*is_initial_element*/);
 }
@@ -1327,6 +1345,13 @@
 
   // Set the focus item for the UI navigation system.
   if (ui_nav_item_ && !ui_nav_item_->IsContainer()) {
+    // Only navigation items attached to the root container are interactable.
+    // If the item is not registered with a container, then force a layout to
+    // connect items to their containers and eventually to the root container.
+    if (!ui_nav_item_->GetContainerItem()) {
+      // UI navigation items are updated as part of generating the render tree.
+      node_document()->DoSynchronousLayoutAndGetRenderTree();
+    }
     ui_nav_item_->Focus();
   }
 }
diff --git a/src/cobalt/dom/html_element.h b/src/cobalt/dom/html_element.h
index abb2f2e..5cf5a48 100644
--- a/src/cobalt/dom/html_element.h
+++ b/src/cobalt/dom/html_element.h
@@ -233,6 +233,7 @@
   void ClearRuleMatchingStateOnElementAndAncestors(
       bool invalidate_tree_matching_rules);
   void ClearRuleMatchingStateOnElementAndDescendants();
+  void ClearRuleMatchingStateOnElementAndSiblingsAndDescendants();
 
   // Returns the cached matching rules of this element.
   cssom::RulesWithCascadePrecedence* matching_rules() {
diff --git a/src/cobalt/dom/rule_matching.cc b/src/cobalt/dom/rule_matching.cc
index b38802c..c58f6e6 100644
--- a/src/cobalt/dom/rule_matching.cc
+++ b/src/cobalt/dom/rule_matching.cc
@@ -356,18 +356,6 @@
   return selector_matcher.element();
 }
 
-bool MatchRuleAndElement(cssom::CSSStyleRule* rule, Element* element) {
-  for (cssom::Selectors::const_iterator selector_iterator =
-           rule->selectors().begin();
-       selector_iterator != rule->selectors().end(); ++selector_iterator) {
-    DCHECK(*selector_iterator);
-    if (MatchSelectorAndElement(selector_iterator->get(), element, true)) {
-      return true;
-    }
-  }
-  return false;
-}
-
 void GatherCandidateNodesFromSelectorNodesMap(
     cssom::SimpleSelectorType simple_selector_type,
     cssom::CombinatorType combinator_type,
@@ -960,6 +948,18 @@
   return NULL;
 }
 
+bool MatchRuleAndElement(cssom::CSSStyleRule* rule, Element* element) {
+  for (cssom::Selectors::const_iterator selector_iterator =
+           rule->selectors().begin();
+       selector_iterator != rule->selectors().end(); ++selector_iterator) {
+    DCHECK(*selector_iterator);
+    if (MatchSelectorAndElement(selector_iterator->get(), element, true)) {
+      return true;
+    }
+  }
+  return false;
+}
+
 scoped_refptr<NodeList> QuerySelectorAll(Node* node,
                                          const std::string& selectors,
                                          cssom::CSSParser* css_parser) {
diff --git a/src/cobalt/dom/rule_matching.h b/src/cobalt/dom/rule_matching.h
index 4b53a6b..b473c27 100644
--- a/src/cobalt/dom/rule_matching.h
+++ b/src/cobalt/dom/rule_matching.h
@@ -19,6 +19,7 @@
 
 #include "base/memory/ref_counted.h"
 #include "cobalt/cssom/css_parser.h"
+#include "cobalt/cssom/css_style_rule.h"
 
 namespace cobalt {
 namespace dom {
@@ -48,6 +49,9 @@
                                          const std::string& selectors,
                                          cssom::CSSParser* css_parser);
 
+// Returns true  if any of the selectors in the rule matches the given element.
+bool MatchRuleAndElement(cssom::CSSStyleRule* rule, Element* element);
+
 }  // namespace dom
 }  // namespace cobalt
 
diff --git a/src/cobalt/dom/rule_matching_test.cc b/src/cobalt/dom/rule_matching_test.cc
index 84a5a88..18531c3 100644
--- a/src/cobalt/dom/rule_matching_test.cc
+++ b/src/cobalt/dom/rule_matching_test.cc
@@ -35,12 +35,17 @@
 #include "cobalt/dom/testing/stub_window.h"
 #include "cobalt/dom_parser/parser.h"
 #include "testing/gtest/include/gtest/gtest.h"
+#include "cobalt/script/script_exception.h"
+#include "cobalt/script/testing/mock_exception_state.h"
 
 using cobalt::cssom::ViewportSize;
 
 namespace cobalt {
 namespace dom {
 
+using script::testing::MockExceptionState;
+using ::testing::StrictMock;
+
 class RuleMatchingTest : public ::testing::Test {
  protected:
   RuleMatchingTest()
@@ -776,6 +781,13 @@
   EXPECT_EQ(0, node_list->length());
 }
 
+TEST_F(RuleMatchingTest, ElementMatches) {
+  scoped_refptr<Element> root = new Element(document_, base::Token("root"));
+  StrictMock<MockExceptionState> exception_state;
+  EXPECT_TRUE(root->Matches("root", &exception_state));
+  EXPECT_FALSE(root->Matches("r", &exception_state));
+}
+
 TEST_F(RuleMatchingTest, StyleElementRemoval) {
   head_->set_inner_html("<style>* {}</style>");
   body_->set_inner_html("<div/>");
diff --git a/src/cobalt/h5vcc/h5vcc.cc b/src/cobalt/h5vcc/h5vcc.cc
index 701d785..5ba9959 100644
--- a/src/cobalt/h5vcc/h5vcc.cc
+++ b/src/cobalt/h5vcc/h5vcc.cc
@@ -33,7 +33,6 @@
 #if defined(COBALT_ENABLE_SSO)
   sso_ = new H5vccSso();
 #endif
-  storage_ = new H5vccStorage(settings.network_module);
   system_ = new H5vccSystem();
   trace_event_ = new H5vccTraceEvent();
 }
@@ -47,7 +46,6 @@
   tracer->Trace(runtime_);
   tracer->Trace(settings_);
   tracer->Trace(sso_);
-  tracer->Trace(storage_);
   tracer->Trace(system_);
   tracer->Trace(trace_event_);
 }
diff --git a/src/cobalt/h5vcc/h5vcc.gyp b/src/cobalt/h5vcc/h5vcc.gyp
index 18a74fe..3378152 100644
--- a/src/cobalt/h5vcc/h5vcc.gyp
+++ b/src/cobalt/h5vcc/h5vcc.gyp
@@ -48,8 +48,6 @@
         'h5vcc_runtime_event_target.h',
         'h5vcc_settings.cc',
         'h5vcc_settings.h',
-        'h5vcc_storage.cc',
-        'h5vcc_storage.h',
         'h5vcc_system.cc',
         'h5vcc_system.h',
         'h5vcc_trace_event.cc',
diff --git a/src/cobalt/h5vcc/h5vcc.h b/src/cobalt/h5vcc/h5vcc.h
index d87120f..210f29e 100644
--- a/src/cobalt/h5vcc/h5vcc.h
+++ b/src/cobalt/h5vcc/h5vcc.h
@@ -28,7 +28,6 @@
 #include "cobalt/h5vcc/h5vcc_runtime.h"
 #include "cobalt/h5vcc/h5vcc_settings.h"
 #include "cobalt/h5vcc/h5vcc_sso.h"
-#include "cobalt/h5vcc/h5vcc_storage.h"
 #include "cobalt/h5vcc/h5vcc_system.h"
 #include "cobalt/h5vcc/h5vcc_trace_event.h"
 #include "cobalt/script/wrappable.h"
@@ -69,7 +68,6 @@
 #if defined(COBALT_ENABLE_SSO)
   const scoped_refptr<H5vccSso>& sso() const { return sso_; }
 #endif
-  const scoped_refptr<H5vccStorage>& storage() const { return storage_; }
   const scoped_refptr<H5vccSystem>& system() const { return system_; }
   const scoped_refptr<H5vccTraceEvent>& trace_event() const {
     return trace_event_;
@@ -87,7 +85,6 @@
   scoped_refptr<H5vccRuntime> runtime_;
   scoped_refptr<H5vccSettings> settings_;
   scoped_refptr<H5vccSso> sso_;
-  scoped_refptr<H5vccStorage> storage_;
   scoped_refptr<H5vccSystem> system_;
   scoped_refptr<H5vccTraceEvent> trace_event_;
 
diff --git a/src/cobalt/h5vcc/h5vcc.idl b/src/cobalt/h5vcc/h5vcc.idl
index 5155763..ed7818d 100644
--- a/src/cobalt/h5vcc/h5vcc.idl
+++ b/src/cobalt/h5vcc/h5vcc.idl
@@ -18,9 +18,9 @@
 // APIs which allow clients to call non-standard native functions that we
 // expose.
 //
-// For example we provide a h5vcc.storage.ClearCookies(), which can empty the
-// cookie jar in response to the user's request. Other H5vcc modules expose
-// audio capabilities about the platform, or run an in-app DIAL server.
+// For example we provide a h5vcc.accessibility.textToSpeech, which tells
+// whether the platform supports text-to-speech capability. Other H5vcc
+// modules can run an in-app DIAL server or expose availables CVals.
 //
 // The H5vcc node should just be a collection of readonly sub-nodes.
 // This is created by the BrowserModule and passed directly to the Window
@@ -37,7 +37,6 @@
   readonly attribute H5vccSettings settings;
   [Conditional=COBALT_ENABLE_SSO]
       readonly attribute H5vccSso sso;
-  readonly attribute H5vccStorage storage;
   readonly attribute H5vccSystem system;
   readonly attribute H5vccTraceEvent traceEvent;
 };
diff --git a/src/cobalt/h5vcc/h5vcc_accessibility.cc b/src/cobalt/h5vcc/h5vcc_accessibility.cc
index 9c4a8ba..29fbc3d 100644
--- a/src/cobalt/h5vcc/h5vcc_accessibility.cc
+++ b/src/cobalt/h5vcc/h5vcc_accessibility.cc
@@ -16,9 +16,6 @@
 
 #include "base/command_line.h"
 #include "base/message_loop/message_loop.h"
-#include "cobalt/accessibility/starboard_tts_engine.h"
-#include "cobalt/accessibility/tts_engine.h"
-#include "cobalt/accessibility/tts_logger.h"
 #include "cobalt/base/accessibility_settings_changed_event.h"
 #include "cobalt/browser/switches.h"
 #include "starboard/accessibility.h"
@@ -40,20 +37,6 @@
   return false;
 }
 
-#if SB_HAS(SPEECH_SYNTHESIS)
-bool IsTextToSpeechEnabled() {
-  // Check if the tts feature is enabled in Starboard.
-  SbAccessibilityTextToSpeechSettings tts_settings = {0};
-  // Check platform settings.
-  if (SbAccessibilityGetTextToSpeechSettings(&tts_settings)) {
-    return tts_settings.has_text_to_speech_setting &&
-           tts_settings.is_text_to_speech_enabled;
-  }
-
-  return false;
-}
-#endif  // SB_HAS(SPEECH_SYNTHESIS)
-
 }  // namespace
 
 H5vccAccessibility::H5vccAccessibility(
@@ -67,26 +50,6 @@
   event_dispatcher_->AddEventCallback(
       base::AccessibilitySettingsChangedEvent::TypeId(),
       on_application_event_callback_);
-  if (ShouldForceTextToSpeech()) {
-#if SB_HAS(SPEECH_SYNTHESIS)
-    // Create a StarboardTTSEngine if the platform has speech synthesis.
-    tts_engine_.reset(new accessibility::StarboardTTSEngine());
-#else
-    tts_engine_.reset(new accessibility::TTSLogger());
-#endif
-  }
-
-#if SB_HAS(SPEECH_SYNTHESIS)
-  if (!tts_engine_ && IsTextToSpeechEnabled()) {
-    // Create a StarboardTTSEngine if TTS is enabled.
-    tts_engine_.reset(new accessibility::StarboardTTSEngine());
-  }
-#endif
-
-  if (tts_engine_) {
-    screen_reader_.reset(new accessibility::ScreenReader(
-        window->document(), tts_engine_.get(), mutation_observer_task_manager));
-  }
 }
 
 H5vccAccessibility::~H5vccAccessibility() {
@@ -95,16 +58,12 @@
       on_application_event_callback_);
 }
 
-bool H5vccAccessibility::built_in_screen_reader() const {
-  return screen_reader_ && screen_reader_->enabled();
-}
+bool H5vccAccessibility::built_in_screen_reader() const { return false; }
 
 void H5vccAccessibility::set_built_in_screen_reader(bool value) {
-  if (!screen_reader_) {
+  if (value) {
     LOG(WARNING) << "h5vcc.accessibility.builtInScreenReader: not available";
-    return;
   }
-  screen_reader_->set_enabled(value);
 }
 
 bool H5vccAccessibility::high_contrast_text() const {
diff --git a/src/cobalt/h5vcc/h5vcc_accessibility.h b/src/cobalt/h5vcc/h5vcc_accessibility.h
index a3cc95f..f3b5c45 100644
--- a/src/cobalt/h5vcc/h5vcc_accessibility.h
+++ b/src/cobalt/h5vcc/h5vcc_accessibility.h
@@ -18,8 +18,6 @@
 #include <memory>
 
 #include "base/message_loop/message_loop.h"
-#include "cobalt/accessibility/screen_reader.h"
-#include "cobalt/accessibility/tts_engine.h"
 #include "cobalt/base/event_dispatcher.h"
 #include "cobalt/dom/window.h"
 #include "cobalt/script/callback_function.h"
@@ -65,8 +63,6 @@
   base::EventDispatcher* event_dispatcher_;
   std::unique_ptr<H5vccAccessibilityCallbackReference>
       high_contrast_text_listener_;
-  std::unique_ptr<accessibility::TTSEngine> tts_engine_;
-  std::unique_ptr<accessibility::ScreenReader> screen_reader_;
 
   DISALLOW_COPY_AND_ASSIGN(H5vccAccessibility);
 };
diff --git a/src/cobalt/h5vcc/h5vcc_storage.cc b/src/cobalt/h5vcc/h5vcc_storage.cc
deleted file mode 100644
index 8bc8c5d..0000000
--- a/src/cobalt/h5vcc/h5vcc_storage.cc
+++ /dev/null
@@ -1,54 +0,0 @@
-// Copyright 2015 The Cobalt Authors. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#include "cobalt/h5vcc/h5vcc_storage.h"
-
-#include "cobalt/storage/storage_manager.h"
-#include "net/url_request/url_request_context.h"
-
-namespace cobalt {
-namespace h5vcc {
-
-H5vccStorage::H5vccStorage(network::NetworkModule* network_module)
-    : network_module_(network_module) {}
-
-void H5vccStorage::ClearCookies() {
-  net::CookieStore* cookie_store =
-      network_module_->url_request_context()->cookie_store();
-  auto* cookie_monster = static_cast<net::CookieMonster*>(cookie_store);
-  network_module_->task_runner()->PostBlockingTask(
-      FROM_HERE,
-      base::Bind(&net::CookieMonster::DeleteAllMatchingInfoAsync,
-                 base::Unretained(cookie_monster), net::CookieDeletionInfo(),
-                 base::Passed(net::CookieStore::DeleteCallback())));
-}
-
-void H5vccStorage::Flush(const base::Optional<bool>& sync) {
-  if (sync.value_or(false) == true) {
-    DLOG(WARNING) << "Synchronous flush is not supported.";
-  }
-
-  network_module_->storage_manager()->FlushNow(base::Closure());
-}
-
-bool H5vccStorage::GetCookiesEnabled() {
-  return network_module_->network_delegate()->cookies_enabled();
-}
-
-void H5vccStorage::SetCookiesEnabled(bool enabled) {
-  network_module_->network_delegate()->set_cookies_enabled(enabled);
-}
-
-}  // namespace h5vcc
-}  // namespace cobalt
diff --git a/src/cobalt/h5vcc/h5vcc_storage.h b/src/cobalt/h5vcc/h5vcc_storage.h
deleted file mode 100644
index 613f024..0000000
--- a/src/cobalt/h5vcc/h5vcc_storage.h
+++ /dev/null
@@ -1,44 +0,0 @@
-// Copyright 2015 The Cobalt Authors. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#ifndef COBALT_H5VCC_H5VCC_STORAGE_H_
-#define COBALT_H5VCC_H5VCC_STORAGE_H_
-
-#include "base/optional.h"
-#include "cobalt/network/network_module.h"
-#include "cobalt/script/wrappable.h"
-
-namespace cobalt {
-namespace h5vcc {
-
-class H5vccStorage : public script::Wrappable {
- public:
-  explicit H5vccStorage(network::NetworkModule* network_module);
-  void ClearCookies();
-  void Flush(const base::Optional<bool>& sync);
-  bool GetCookiesEnabled();
-  void SetCookiesEnabled(bool enabled);
-
-  DEFINE_WRAPPABLE_TYPE(H5vccStorage);
-
- private:
-  network::NetworkModule* network_module_;
-
-  DISALLOW_COPY_AND_ASSIGN(H5vccStorage);
-};
-
-}  // namespace h5vcc
-}  // namespace cobalt
-
-#endif  // COBALT_H5VCC_H5VCC_STORAGE_H_
diff --git a/src/cobalt/h5vcc/h5vcc_storage.idl b/src/cobalt/h5vcc/h5vcc_storage.idl
deleted file mode 100644
index 7a30dec..0000000
--- a/src/cobalt/h5vcc/h5vcc_storage.idl
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright 2015 The Cobalt Authors. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-interface H5vccStorage {
-  void clearCookies();
-  // We don't support synchronous flush, this is legacy.
-  void flush(optional boolean sync = false);
-  boolean getCookiesEnabled();
-  void setCookiesEnabled(boolean value);
-};
diff --git a/src/cobalt/layout/block_container_box.cc b/src/cobalt/layout/block_container_box.cc
index c3076e4..006baff 100644
--- a/src/cobalt/layout/block_container_box.cc
+++ b/src/cobalt/layout/block_container_box.cc
@@ -207,15 +207,15 @@
     // computed value for 'width'.
     //   https://www.w3.org/TR/CSS21/visudet.html#min-max-widths
     bool min_width_depends_on_containing_block;
-    base::Optional<LayoutUnit> min_width =
-        GetUsedMinWidth(computed_style(), layout_params.containing_block_size,
-                        &min_width_depends_on_containing_block);
-    if (width() < min_width.value()) {
-      UpdateContentWidthAndMargins(layout_params.containing_block_size.width(),
-                                   layout_params.shrink_to_fit_width_forced,
-                                   min_width_depends_on_containing_block,
-                                   maybe_left, maybe_right, maybe_margin_left,
-                                   maybe_margin_right, min_width, maybe_height);
+    base::Optional<LayoutUnit> maybe_min_width = GetUsedMinWidthIfNotAuto(
+        computed_style(), layout_params.containing_block_size,
+        &min_width_depends_on_containing_block);
+    if (maybe_min_width && (width() < maybe_min_width.value_or(LayoutUnit()))) {
+      UpdateContentWidthAndMargins(
+          layout_params.containing_block_size.width(),
+          layout_params.shrink_to_fit_width_forced,
+          min_width_depends_on_containing_block, maybe_left, maybe_right,
+          maybe_margin_left, maybe_margin_right, maybe_min_width, maybe_height);
     }
   }
 
@@ -239,9 +239,9 @@
   // applied again, but this time using the value of 'min-height' as the
   // computed value for 'height'.
   //   https://www.w3.org/TR/CSS21/visudet.html#min-max-heights
-  base::Optional<LayoutUnit> min_height =
-      GetUsedMinHeight(computed_style(), layout_params.containing_block_size);
-  if (height() < min_height.value()) {
+  base::Optional<LayoutUnit> min_height = GetUsedMinHeightIfNotAuto(
+      computed_style(), layout_params.containing_block_size);
+  if (min_height && (height() < min_height.value())) {
     UpdateContentHeightAndMargins(layout_params.containing_block_size,
                                   maybe_top, maybe_bottom, maybe_margin_top,
                                   maybe_margin_bottom, min_height);
diff --git a/src/cobalt/layout/box_intersection_observer_module.cc b/src/cobalt/layout/box_intersection_observer_module.cc
index d09d3b6..124d36c 100644
--- a/src/cobalt/layout/box_intersection_observer_module.cc
+++ b/src/cobalt/layout/box_intersection_observer_module.cc
@@ -14,6 +14,7 @@
 
 #include "cobalt/layout/box_intersection_observer_module.h"
 
+#include "base/trace_event/trace_event.h"
 #include "cobalt/layout/box.h"
 
 namespace cobalt {
@@ -45,6 +46,9 @@
 }
 
 void BoxIntersectionObserverModule::UpdateIntersectionObservations() {
+  TRACE_EVENT0(
+      "cobalt::layout",
+      "BoxIntersectionObserverModule::UpdateIntersectionObservations()");
   ContainerBox* container_box = box_->AsContainerBox();
   if (!container_box) {
     return;
diff --git a/src/cobalt/layout/flex_container_box.cc b/src/cobalt/layout/flex_container_box.cc
index 73067f4..b62921d 100644
--- a/src/cobalt/layout/flex_container_box.cc
+++ b/src/cobalt/layout/flex_container_box.cc
@@ -15,6 +15,7 @@
 #include "cobalt/layout/flex_container_box.h"
 
 #include <algorithm>
+#include <vector>
 
 #include "cobalt/cssom/computed_style.h"
 #include "cobalt/cssom/keyword_value.h"
@@ -54,12 +55,12 @@
       computed_style(), layout_params.containing_block_size,
       &height_depends_on_containing_block);
 
-  LayoutUnit min_width = GetUsedMinWidth(
+  base::Optional<LayoutUnit> min_width = GetUsedMinWidthIfNotAuto(
       computed_style(), layout_params.containing_block_size, NULL);
   base::Optional<LayoutUnit> max_width = GetUsedMaxWidthIfNotNone(
       computed_style(), layout_params.containing_block_size, NULL);
-  LayoutUnit min_height =
-      GetUsedMinHeight(computed_style(), layout_params.containing_block_size);
+  base::Optional<LayoutUnit> min_height = GetUsedMinHeightIfNotAuto(
+      computed_style(), layout_params.containing_block_size);
   base::Optional<LayoutUnit> max_height = GetUsedMaxHeightIfNotNone(
       computed_style(), layout_params.containing_block_size);
 
@@ -147,20 +148,20 @@
   }
 
   if (main_space) {
-    if (max_main_space_ && main_space.value() > max_main_space_.value()) {
+    if (max_main_space_ && *main_space > *max_main_space_) {
       main_space = max_main_space_;
     }
-    if (main_space.value() < min_main_space_) {
+    if (min_main_space_ && *main_space < *min_main_space_) {
       main_space = min_main_space_;
     }
   }
 
   if (cross_space) {
-    if (max_cross_space_ && cross_space_.value() > max_cross_space_.value()) {
+    if (max_cross_space_ && *cross_space_ > *max_cross_space_) {
       cross_space = max_cross_space_;
     }
-    if (cross_space.value() < min_cross_space_) {
-      cross_space = min_cross_space_;
+    if (min_cross_space_ && *cross_space < *min_cross_space_) {
+      cross_space = *min_cross_space_;
     }
   }
 
@@ -168,85 +169,6 @@
   cross_space_ = cross_space;
 }
 
-LayoutUnit FlexContainerBox::DetermineFlexBaseSize(
-    Box* item, const LayoutParams& layout_params,
-    bool container_shrink_to_fit_width_forced) {
-  // Absolutely positioned boxes are not flex items.
-  DCHECK(!item->IsAbsolutelyPositioned());
-
-  // All flex items are block container boxes.
-  DCHECK(item->AsBlockContainerBox());
-
-  bool main_direction_is_horizontal = MainDirectionIsHorizontal();
-
-  // Algorithm for determine the flex base size and hypothetical main size of
-  // each item.
-  //   https://www.w3.org/TR/css-flexbox-1/#algo-main-item
-
-  // A. If the item has a definite used flex basis, that's the flex base size.
-  bool flex_basis_depends_on_available_space;
-  base::Optional<LayoutUnit> flex_basis = GetUsedFlexBasisIfNotContent(
-      item->computed_style(), main_direction_is_horizontal,
-      layout_params.containing_block_size,
-      &flex_basis_depends_on_available_space);
-  bool flex_basis_is_definite =
-      flex_basis && (!flex_basis_depends_on_available_space || main_space_);
-  if (flex_basis_is_definite) {
-    return flex_basis.value();
-  }
-
-  // B. If the flex item has an intrinsic aspect ratio, a used flex basis of
-  //    content, and a definite cross size, then the flex base size is
-  //    calculated from its inner cross size and the flex item's intrinsic
-  //    aspect ratio.
-  // Sizing from intrinsic ratio is not supported.
-
-  bool flex_basis_is_content_or_depends_on_available_space =
-      !flex_basis || flex_basis_depends_on_available_space;
-  // C. If the used flex basis is content or depends on its available space, and
-  //    the flex container is being sized under a min-content or max-content
-  //    constraint, size the item under that constraint. The flex base size is
-  //    the item's resulting main size.
-  if (flex_basis_is_content_or_depends_on_available_space &&
-      container_shrink_to_fit_width_forced) {
-    LayoutParams child_layout_params(layout_params);
-    child_layout_params.shrink_to_fit_width_forced = true;
-    item->UpdateSize(child_layout_params);
-    return main_direction_is_horizontal ? item->width() : item->height();
-  }
-
-  // D. Otherwise, if the used flex basis is content or depends on its available
-  //    space, the available main size is infinite, and the flex item's inline
-  //    axis is parallel to the main axis, lay the item out using the rules for
-  //    a box in an orthogonal flow. The flex base size is the item's
-  //    max-content main size.
-  //
-  if (flex_basis_is_content_or_depends_on_available_space &&
-      main_direction_is_horizontal && !main_space_) {
-    // Calculate the max-content main size.
-    LayoutParams child_layout_params(layout_params);
-    child_layout_params.shrink_to_fit_width_forced = true;
-    item->UpdateSize(child_layout_params);
-    return item->width();
-  }
-
-  // E. Otherwise, size the item into the available space using its used flex
-  //    basis in place of its main size, treating a value of content as
-  //    max-content. If a cross size is needed to determine the main size (e.g.
-  //    when the flex item's main size is in its block axis) and the flex item's
-  //    cross size is auto and not definite, in this calculation use fit-content
-  //    as the flex item's cross size. The flex base size is the item's
-  //    resulting main size.
-  // TODO: handle 'if (!main_direction_is_horizontal)' and auto
-  // height, see above.
-  LayoutParams child_layout_params(layout_params);
-  if (!flex_basis) {
-    child_layout_params.shrink_to_fit_width_forced = true;
-  }
-  item->UpdateSize(child_layout_params);
-  return main_direction_is_horizontal ? item->width() : item->height();
-}
-
 // From |Box|.
 void FlexContainerBox::UpdateContentSizeAndMargins(
     const LayoutParams& layout_params) {
@@ -281,51 +203,24 @@
   LayoutParams child_layout_params;
   child_layout_params.containing_block_size = available_space;
 
-  // TODO: Verify if this is correct, including the call to |UpdateRect| below.
-  // Not setting this appears to result in incorrect hypothetical main size.
-  child_layout_params.shrink_to_fit_width_forced = true;
-
   FlexFormattingContext flex_formatting_context(
       child_layout_params, main_direction_is_horizontal, DirectionIsReversed());
 
+  std::vector<std::unique_ptr<FlexItem>> items;
+  items.reserve(child_boxes().size());
+
   for (Boxes::const_iterator child_box_iterator = child_boxes().begin();
        child_box_iterator != child_boxes().end(); ++child_box_iterator) {
     Box* child_box = *child_box_iterator;
-    if (child_box->IsAbsolutelyPositioned()) {
-      flex_formatting_context.EstimateStaticPosition(child_box);
-    } else {
+    if (!child_box->IsAbsolutelyPositioned()) {
       flex_formatting_context.UpdateRect(child_box);
 
-      FlexFormattingContext::ItemParameters parameters;
-      parameters.flex_base_size =
-          DetermineFlexBaseSize(child_box, child_layout_params,
-                                layout_params.shrink_to_fit_width_forced);
-      // The hypothetical main size is the item's flex base size clamped
-      // according to its used min and max main sizes.
-      if (main_direction_is_horizontal) {
-        LayoutUnit min_width =
-            GetUsedMinWidth(child_box->computed_style(), available_space, NULL);
-        parameters.hypothetical_main_size =
-            std::max(min_width, parameters.flex_base_size);
-        base::Optional<LayoutUnit> max_width = GetUsedMaxWidthIfNotNone(
-            child_box->computed_style(), available_space, NULL);
-        if (max_width) {
-          parameters.hypothetical_main_size =
-              std::min(max_width.value(), parameters.hypothetical_main_size);
-        }
-      } else {
-        LayoutUnit min_height =
-            GetUsedMinHeight(child_box->computed_style(), available_space);
-        parameters.hypothetical_main_size =
-            std::max(min_height, parameters.flex_base_size);
-        base::Optional<LayoutUnit> max_height = GetUsedMaxHeightIfNotNone(
-            child_box->computed_style(), available_space);
-        if (max_height) {
-          parameters.hypothetical_main_size =
-              std::min(max_height.value(), parameters.hypothetical_main_size);
-        }
-      }
-      flex_formatting_context.SetItemParameters(child_box, parameters);
+      auto item = FlexItem::Create(child_box, main_direction_is_horizontal);
+      item->DetermineFlexBaseSize(child_layout_params, main_space_,
+                                  layout_params.shrink_to_fit_width_forced);
+      item->DetermineHypotheticalMainSize(
+          child_layout_params.containing_block_size);
+      items.emplace_back(std::move(item));
     }
   }
 
@@ -371,11 +266,11 @@
   }
 
   LayoutUnit main_size = flex_formatting_context.main_size();
-  if (max_main_space_ && main_size > max_main_space_.value()) {
-    main_size = max_main_space_.value();
+  if (max_main_space_ && main_size > *max_main_space_) {
+    main_size = *max_main_space_;
   }
-  if (main_size < min_main_space_) {
-    main_size = min_main_space_;
+  if (min_main_space_ && main_size < *min_main_space_) {
+    main_size = *min_main_space_;
   }
   flex_formatting_context.set_main_size(main_size);
 
@@ -384,16 +279,14 @@
   } else {
     set_height(main_size);
   }
+  flex_formatting_context.SetContainerMainSize(main_size);
 
   // Main Size Determination:
   // 5. Collect flex items into flex lines.
   flex_formatting_context.set_multi_line(ContainerIsMultiLine());
-  for (Boxes::const_iterator child_box_iterator = child_boxes().begin();
-       child_box_iterator != child_boxes().end(); ++child_box_iterator) {
-    Box* child_box = *child_box_iterator;
-    if (!child_box->IsAbsolutelyPositioned()) {
-      flex_formatting_context.CollectItemIntoLine(child_box);
-    }
+  for (auto& item : items) {
+    DCHECK(!item->box()->IsAbsolutelyPositioned());
+    flex_formatting_context.CollectItemIntoLine(std::move(item));
   }
 
   // Perform remaining steps of the layout of the items.
@@ -407,17 +300,6 @@
     set_width(flex_formatting_context.cross_size());
   }
 
-  // Layout positioned child boxes.
-
-  // TODO: Check if this should be content box instead of padding box.
-  //  https://www.w3.org/TR/css-flexbox-1/#abspos-items
-  LayoutParams absolute_child_layout_params;
-  absolute_child_layout_params.containing_block_size.set_width(
-      GetPaddingBoxWidth());
-  absolute_child_layout_params.containing_block_size.set_height(
-      GetPaddingBoxHeight());
-  UpdateRectOfPositionedChildBoxes(layout_params, absolute_child_layout_params);
-
   base::Optional<LayoutUnit> maybe_margin_left = GetUsedMarginLeftIfNotAuto(
       computed_style(), layout_params.containing_block_size);
   base::Optional<LayoutUnit> maybe_margin_right = GetUsedMarginRightIfNotAuto(
@@ -433,7 +315,11 @@
 
   set_margin_top(maybe_margin_top.value_or(LayoutUnit()));
   set_margin_bottom(maybe_margin_bottom.value_or(LayoutUnit()));
-  baseline_ = flex_formatting_context.GetBaseline();
+  if (child_boxes().empty()) {
+    baseline_ = GetBorderBoxHeight();
+  } else {
+    baseline_ = flex_formatting_context.GetBaseline();
+  }
 }
 
 WrapResult FlexContainerBox::TryWrapAt(
@@ -481,8 +367,6 @@
 }
 
 LayoutUnit FlexContainerBox::GetBaselineOffsetFromTopMarginEdge() const {
-  // TODO: Complete implementation of flex container baselines.
-  //   https://www.w3.org/TR/css-flexbox-1/#flex-baselines
   return GetContentBoxOffsetFromMarginBox().y() + baseline_;
 }
 
@@ -500,12 +384,8 @@
   TextBox* text_box = child_box->AsTextBox();
   switch (child_box->GetLevel()) {
     case kBlockLevel:
-      if (!child_box->IsAbsolutelyPositioned()) {
-        PushBackDirectChild(child_box);
-        break;
-      }
-    // Fall through if child is out-of-flow.
-
+      PushBackDirectChild(child_box);
+      break;
     case kInlineLevel:
       if (text_box && !text_box->HasNonCollapsibleText()) {
         // Text boxes with only white space are not rendered, just as if
diff --git a/src/cobalt/layout/flex_container_box.h b/src/cobalt/layout/flex_container_box.h
index 0c4be6c..5c5007b 100644
--- a/src/cobalt/layout/flex_container_box.h
+++ b/src/cobalt/layout/flex_container_box.h
@@ -88,10 +88,10 @@
   base::Optional<LayoutUnit> main_space_;
   base::Optional<LayoutUnit> cross_space_;
 
-  LayoutUnit min_main_space_;
+  base::Optional<LayoutUnit> min_main_space_;
   base::Optional<LayoutUnit> max_main_space_;
 
-  LayoutUnit min_cross_space_;
+  base::Optional<LayoutUnit> min_cross_space_;
   base::Optional<LayoutUnit> max_cross_space_;
 
   LayoutUnit baseline_;
diff --git a/src/cobalt/layout/flex_formatting_context.cc b/src/cobalt/layout/flex_formatting_context.cc
index be295e6..b106ffe 100644
--- a/src/cobalt/layout/flex_formatting_context.cc
+++ b/src/cobalt/layout/flex_formatting_context.cc
@@ -35,7 +35,11 @@
 
 void FlexFormattingContext::UpdateRect(Box* child_box) {
   DCHECK(!child_box->IsAbsolutelyPositioned());
-  child_box->UpdateSize(layout_params_);
+  {
+    LayoutParams child_layout_params(layout_params_);
+    child_layout_params.shrink_to_fit_width_forced = true;
+    child_box->UpdateSize(child_layout_params);
+  }
 
   // Shrink-to-fit doesn't exists anymore by itself in CSS3. It is called the
   // fit-content size, which is derived from the 'min-content' and 'max-content'
@@ -51,13 +55,8 @@
   set_auto_height(child_box->height());
 }
 
-void FlexFormattingContext::EstimateStaticPosition(Box* child_box) {
-  DCHECK(child_box->IsAbsolutelyPositioned());
-  child_box->UpdateSize(layout_params_);
-  // TODO set static position? Also, memoize because there may be multiple...
-}
-
-void FlexFormattingContext::CollectItemIntoLine(Box* item) {
+void FlexFormattingContext::CollectItemIntoLine(
+    std::unique_ptr<FlexItem>&& item) {
   // Collect flex items into flex lines:
   //   https://www.w3.org/TR/css-flexbox-1/#algo-line-break
   if (lines_.empty()) {
@@ -65,31 +64,21 @@
                                      main_direction_is_horizontal_,
                                      direction_is_reversed_, main_size_));
   }
-  ItemParameters parameters = GetItemParameters(item);
 
-  if (multi_line_) {
-    if (lines_.back()->TryAddItem(item, parameters.flex_base_size,
-                                  parameters.hypothetical_main_size)) {
-      return;
-    } else {
-      lines_.emplace_back(new FlexLine(layout_params_,
-                                       main_direction_is_horizontal_,
-                                       direction_is_reversed_, main_size_));
-    }
+  if (multi_line_ && !lines_.back()->CanAddItem(*item)) {
+    lines_.emplace_back(new FlexLine(layout_params_,
+                                     main_direction_is_horizontal_,
+                                     direction_is_reversed_, main_size_));
   }
 
-  lines_.back()->AddItem(item, parameters.flex_base_size,
-                         parameters.hypothetical_main_size);
+  lines_.back()->AddItem(std::move(item));
 }
 
 void FlexFormattingContext::ResolveFlexibleLengthsAndCrossSizes(
-    const base::Optional<LayoutUnit>& cross_space, LayoutUnit min_cross_space,
+    const base::Optional<LayoutUnit>& cross_space,
+    const base::Optional<LayoutUnit>& min_cross_space,
     const base::Optional<LayoutUnit>& max_cross_space,
     const scoped_refptr<cssom::PropertyValue>& align_content) {
-  if (lines_.empty()) {
-    return;
-  }
-
   // Algorithm for Flex Layout:
   //   https://www.w3.org/TR/css-flexbox-1/#layout-algorithm
 
@@ -118,8 +107,8 @@
   //   https://www.w3.org/TR/css-flexbox-1/#change-201403-clamp-single-line
   if (!multi_line_) {
     LayoutUnit line_cross_size = lines_.front()->cross_size();
-    if (line_cross_size < min_cross_space) {
-      lines_.front()->set_cross_size(min_cross_space);
+    if (min_cross_space && line_cross_size < *min_cross_space) {
+      lines_.front()->set_cross_size(*min_cross_space);
     } else if (max_cross_space && line_cross_size > *max_cross_space) {
       lines_.front()->set_cross_size(*max_cross_space);
     }
@@ -142,12 +131,16 @@
     cross_size_ = total_cross_size;
   }
   // Clamped by the used min and max cross sizes of the flex container.
-  if (cross_size_ < min_cross_space) {
-    cross_size_ = min_cross_space;
+  if (min_cross_space && cross_size_ < *min_cross_space) {
+    cross_size_ = *min_cross_space;
   } else if (max_cross_space && cross_size_ > *max_cross_space) {
     cross_size_ = *max_cross_space;
   }
 
+  if (lines_.empty()) {
+    return;
+  }
+
   LayoutUnit leftover_cross_size = cross_size_ - total_cross_size;
   // 9. Handle 'align-content: stretch'.
   if (align_content == cssom::KeywordValue::GetStretch()) {
@@ -213,12 +206,9 @@
     NOTIMPLEMENTED() << "Column flex boxes not yet implemented.";
   }
 
-  // TODO: Complete implementation of flex container baselines.
-  //   https://www.w3.org/TR/css-flexbox-1/#flex-baselines
-
-  LayoutUnit baseline = LayoutUnit();
+  LayoutUnit baseline = cross_size_;
   if (!lines_.empty()) {
-    if (direction_is_reversed_) {
+    if (direction_is_reversed_ && !main_direction_is_horizontal_) {
       baseline = lines_.back()->GetBaseline();
     } else {
       baseline = lines_.front()->GetBaseline();
diff --git a/src/cobalt/layout/flex_formatting_context.h b/src/cobalt/layout/flex_formatting_context.h
index 3217380..9df264e 100644
--- a/src/cobalt/layout/flex_formatting_context.h
+++ b/src/cobalt/layout/flex_formatting_context.h
@@ -28,11 +28,6 @@
 
 class FlexFormattingContext : public FormattingContext {
  public:
-  struct ItemParameters {
-    LayoutUnit flex_base_size;
-    LayoutUnit hypothetical_main_size;
-  };
-
   FlexFormattingContext(const LayoutParams& layout_params,
                         bool main_direction_is_horizontal,
                         bool direction_is_reversed);
@@ -42,16 +37,13 @@
   // the internal state in the preparation for the next child.
   void UpdateRect(Box* child_box);
 
-  // Estimates the static position of the given child box. In CSS 2.1 the static
-  // position is only defined for absolutely positioned boxes.
-  void EstimateStaticPosition(Box* child_box);
-
   // Collects the flex item into a flex line.
-  void CollectItemIntoLine(Box* item);
+  void CollectItemIntoLine(std::unique_ptr<FlexItem>&& item);
 
   // layout flex items and determine cross size.
   void ResolveFlexibleLengthsAndCrossSizes(
-      const base::Optional<LayoutUnit>& cross_space, LayoutUnit min_cross_space,
+      const base::Optional<LayoutUnit>& cross_space,
+      const base::Optional<LayoutUnit>& min_cross_space,
       const base::Optional<LayoutUnit>& max_cross_space,
       const scoped_refptr<cssom::PropertyValue>& align_content);
 
@@ -65,20 +57,12 @@
     return layout_params_.containing_block_size;
   }
 
-  const ItemParameters& GetItemParameters(Box* item) {
-    return item_parameters_.find(item)->second;
-  }
-
-  void SetItemParameters(Box* item, const ItemParameters& parameters) {
-    item_parameters_.insert(std::make_pair(item, parameters));
-  }
-
-  LayoutUnit GetFlexBaseSize(Box* item) {
-    return GetItemParameters(item).flex_base_size;
-  }
-
-  LayoutUnit GetHypotheticalMainSize(Box* item) {
-    return GetItemParameters(item).hypothetical_main_size;
+  void SetContainerMainSize(LayoutUnit size) {
+    if (main_direction_is_horizontal_) {
+      layout_params_.containing_block_size.set_width(size);
+    } else {
+      layout_params_.containing_block_size.set_height(size);
+    }
   }
 
   void set_multi_line(bool val) { multi_line_ = val; }
@@ -86,7 +70,7 @@
   LayoutUnit GetBaseline();
 
  private:
-  const LayoutParams layout_params_;
+  LayoutParams layout_params_;
   const bool main_direction_is_horizontal_;
   const bool direction_is_reversed_;
   bool multi_line_ = false;
@@ -94,7 +78,6 @@
   LayoutUnit main_size_;
   LayoutUnit cross_size_;
 
-  base::hash_map<Box*, ItemParameters> item_parameters_;
   std::vector<std::unique_ptr<FlexLine>> lines_;
 
   DISALLOW_COPY_AND_ASSIGN(FlexFormattingContext);
diff --git a/src/cobalt/layout/flex_item.cc b/src/cobalt/layout/flex_item.cc
index e49cf0b..45370f9 100644
--- a/src/cobalt/layout/flex_item.cc
+++ b/src/cobalt/layout/flex_item.cc
@@ -14,9 +14,13 @@
 
 #include "cobalt/layout/flex_item.h"
 
+#include <algorithm>
+
+#include "base/logging.h"
 #include "base/memory/ptr_util.h"
 #include "cobalt/cssom/css_computed_style_data.h"
 #include "cobalt/cssom/number_value.h"
+#include "cobalt/layout/box.h"
 #include "cobalt/layout/container_box.h"
 #include "cobalt/layout/used_style.h"
 
@@ -28,69 +32,79 @@
 // flex containers.
 class MainAxisHorizontalFlexItem : public FlexItem {
  public:
-  MainAxisHorizontalFlexItem(Box* box, LayoutUnit flex_base_size,
-                             LayoutUnit hypothetical_main_size)
-      : FlexItem(box, flex_base_size, hypothetical_main_size) {}
-
+  explicit MainAxisHorizontalFlexItem(Box* box) : FlexItem(box, true) {}
   ~MainAxisHorizontalFlexItem() override {}
 
-  LayoutUnit GetContentToMarginMainAxis() override;
-  LayoutUnit GetContentToMarginCrossAxis() override;
-  LayoutUnit GetUsedMinMainAxisSize(
-      const SizeLayoutUnit& containing_block_size) override;
-  LayoutUnit GetUsedMinCrossAxisSize(
-      const SizeLayoutUnit& containing_block_size) override;
+  LayoutUnit GetContentToMarginMainAxis() const override;
+  LayoutUnit GetContentToMarginCrossAxis() const override;
+  base::Optional<LayoutUnit> GetUsedMainAxisSizeIfNotAuto(
+      const SizeLayoutUnit& containing_block_size) const override;
+  base::Optional<LayoutUnit> GetUsedMinMainAxisSizeIfNotAuto(
+      const SizeLayoutUnit& containing_block_size) const override;
+  base::Optional<LayoutUnit> GetUsedMinCrossAxisSizeIfNotAuto(
+      const SizeLayoutUnit& containing_block_size) const override;
   base::Optional<LayoutUnit> GetUsedMaxMainAxisSizeIfNotNone(
-      const SizeLayoutUnit& containing_block_size) override;
+      const SizeLayoutUnit& containing_block_size) const override;
   base::Optional<LayoutUnit> GetUsedMaxCrossAxisSizeIfNotNone(
-      const SizeLayoutUnit& containing_block_size) override;
+      const SizeLayoutUnit& containing_block_size) const override;
 
   void DetermineHypotheticalCrossSize(
       const LayoutParams& layout_params) override;
-  LayoutUnit GetMarginBoxMainSize() override;
-  LayoutUnit GetMarginBoxCrossSize() override;
 
-  bool CrossSizeIsAuto() override;
-  bool MarginMainStartIsAuto() override;
-  bool MarginMainEndIsAuto() override;
-  bool MarginCrossStartIsAuto() override;
-  bool MarginCrossEndIsAuto() override;
+  LayoutUnit GetContentBoxMainSize() const override;
+  LayoutUnit GetMarginBoxMainSize() const override;
+  LayoutUnit GetMarginBoxCrossSize() const override;
+
+  bool CrossSizeIsAuto() const override;
+  bool MarginMainStartIsAuto() const override;
+  bool MarginMainEndIsAuto() const override;
+  bool MarginCrossStartIsAuto() const override;
+  bool MarginCrossEndIsAuto() const override;
 
   void SetCrossSize(LayoutUnit cross_size) override;
   void SetMainAxisStart(LayoutUnit position) override;
   void SetCrossAxisStart(LayoutUnit position) override;
 };
 
-LayoutUnit MainAxisHorizontalFlexItem::GetContentToMarginMainAxis() {
+LayoutUnit MainAxisHorizontalFlexItem::GetContentToMarginMainAxis() const {
   return box()->GetContentToMarginHorizontal();
 }
 
-LayoutUnit MainAxisHorizontalFlexItem::GetContentToMarginCrossAxis() {
+LayoutUnit MainAxisHorizontalFlexItem::GetContentToMarginCrossAxis() const {
   return box()->GetContentToMarginVertical();
 }
 
-LayoutUnit MainAxisHorizontalFlexItem::GetUsedMinMainAxisSize(
-    const SizeLayoutUnit& containing_block_size) {
-  return GetUsedMinWidth(box()->computed_style(), containing_block_size, NULL);
+base::Optional<LayoutUnit>
+MainAxisHorizontalFlexItem::GetUsedMainAxisSizeIfNotAuto(
+    const SizeLayoutUnit& containing_block_size) const {
+  return GetUsedWidthIfNotAuto(computed_style(), containing_block_size, NULL);
 }
 
-LayoutUnit MainAxisHorizontalFlexItem::GetUsedMinCrossAxisSize(
-    const SizeLayoutUnit& containing_block_size) {
-  return GetUsedMinHeight(box()->computed_style(), containing_block_size);
+base::Optional<LayoutUnit>
+MainAxisHorizontalFlexItem::GetUsedMinMainAxisSizeIfNotAuto(
+    const SizeLayoutUnit& containing_block_size) const {
+  base::Optional<LayoutUnit> maybe_used_min_space =
+      GetUsedMinWidthIfNotAuto(computed_style(), containing_block_size, NULL);
+  return maybe_used_min_space;
+}
+
+base::Optional<LayoutUnit>
+MainAxisHorizontalFlexItem::GetUsedMinCrossAxisSizeIfNotAuto(
+    const SizeLayoutUnit& containing_block_size) const {
+  return GetUsedMinHeightIfNotAuto(computed_style(), containing_block_size);
 }
 
 base::Optional<LayoutUnit>
 MainAxisHorizontalFlexItem::GetUsedMaxMainAxisSizeIfNotNone(
-    const SizeLayoutUnit& containing_block_size) {
-  return GetUsedMaxWidthIfNotNone(box()->computed_style(),
-                                  containing_block_size, NULL);
+    const SizeLayoutUnit& containing_block_size) const {
+  return GetUsedMaxWidthIfNotNone(computed_style(), containing_block_size,
+                                  NULL);
 }
 
 base::Optional<LayoutUnit>
 MainAxisHorizontalFlexItem::GetUsedMaxCrossAxisSizeIfNotNone(
-    const SizeLayoutUnit& containing_block_size) {
-  return GetUsedMaxHeightIfNotNone(box()->computed_style(),
-                                   containing_block_size);
+    const SizeLayoutUnit& containing_block_size) const {
+  return GetUsedMaxHeightIfNotNone(computed_style(), containing_block_size);
 }
 
 void MainAxisHorizontalFlexItem::DetermineHypotheticalCrossSize(
@@ -109,36 +123,36 @@
   box()->UpdateSize(child_layout_params);
 }
 
-LayoutUnit MainAxisHorizontalFlexItem::GetMarginBoxMainSize() {
+LayoutUnit MainAxisHorizontalFlexItem::GetContentBoxMainSize() const {
+  return box()->width();
+}
+
+LayoutUnit MainAxisHorizontalFlexItem::GetMarginBoxMainSize() const {
   return box()->GetMarginBoxWidth();
 }
 
-LayoutUnit MainAxisHorizontalFlexItem::GetMarginBoxCrossSize() {
+LayoutUnit MainAxisHorizontalFlexItem::GetMarginBoxCrossSize() const {
   return box()->GetMarginBoxHeight();
 }
 
-bool MainAxisHorizontalFlexItem::CrossSizeIsAuto() {
-  return box()->computed_style()->height() == cssom::KeywordValue::GetAuto();
+bool MainAxisHorizontalFlexItem::CrossSizeIsAuto() const {
+  return computed_style()->height() == cssom::KeywordValue::GetAuto();
 }
 
-bool MainAxisHorizontalFlexItem::MarginMainStartIsAuto() {
-  return box()->computed_style()->margin_left() ==
-         cssom::KeywordValue::GetAuto();
+bool MainAxisHorizontalFlexItem::MarginMainStartIsAuto() const {
+  return computed_style()->margin_left() == cssom::KeywordValue::GetAuto();
 }
 
-bool MainAxisHorizontalFlexItem::MarginMainEndIsAuto() {
-  return box()->computed_style()->margin_right() ==
-         cssom::KeywordValue::GetAuto();
+bool MainAxisHorizontalFlexItem::MarginMainEndIsAuto() const {
+  return computed_style()->margin_right() == cssom::KeywordValue::GetAuto();
 }
 
-bool MainAxisHorizontalFlexItem::MarginCrossStartIsAuto() {
-  return box()->computed_style()->margin_top() ==
-         cssom::KeywordValue::GetAuto();
+bool MainAxisHorizontalFlexItem::MarginCrossStartIsAuto() const {
+  return computed_style()->margin_top() == cssom::KeywordValue::GetAuto();
 }
 
-bool MainAxisHorizontalFlexItem::MarginCrossEndIsAuto() {
-  return box()->computed_style()->margin_bottom() ==
-         cssom::KeywordValue::GetAuto();
+bool MainAxisHorizontalFlexItem::MarginCrossEndIsAuto() const {
+  return computed_style()->margin_bottom() == cssom::KeywordValue::GetAuto();
 }
 
 void MainAxisHorizontalFlexItem::SetCrossSize(LayoutUnit cross_size) {
@@ -158,70 +172,79 @@
 // flex containers.
 class MainAxisVerticalFlexItem : public FlexItem {
  public:
-  MainAxisVerticalFlexItem(Box* box, LayoutUnit flex_base_size,
-                           LayoutUnit hypothetical_main_size)
-      : FlexItem(box, flex_base_size, hypothetical_main_size) {}
-
+  explicit MainAxisVerticalFlexItem(Box* box) : FlexItem(box, false) {}
   ~MainAxisVerticalFlexItem() override {}
 
-  LayoutUnit GetContentToMarginMainAxis() override;
-  LayoutUnit GetContentToMarginCrossAxis() override;
+  LayoutUnit GetContentToMarginMainAxis() const override;
+  LayoutUnit GetContentToMarginCrossAxis() const override;
 
-  LayoutUnit GetUsedMinMainAxisSize(
-      const SizeLayoutUnit& containing_block_size) override;
-  LayoutUnit GetUsedMinCrossAxisSize(
-      const SizeLayoutUnit& containing_block_size) override;
+  base::Optional<LayoutUnit> GetUsedMainAxisSizeIfNotAuto(
+      const SizeLayoutUnit& containing_block_size) const override;
+  base::Optional<LayoutUnit> GetUsedMinMainAxisSizeIfNotAuto(
+      const SizeLayoutUnit& containing_block_size) const override;
+  base::Optional<LayoutUnit> GetUsedMinCrossAxisSizeIfNotAuto(
+      const SizeLayoutUnit& containing_block_size) const override;
   base::Optional<LayoutUnit> GetUsedMaxMainAxisSizeIfNotNone(
-      const SizeLayoutUnit& containing_block_size) override;
+      const SizeLayoutUnit& containing_block_size) const override;
   base::Optional<LayoutUnit> GetUsedMaxCrossAxisSizeIfNotNone(
-      const SizeLayoutUnit& containing_block_size) override;
+      const SizeLayoutUnit& containing_block_size) const override;
 
   void DetermineHypotheticalCrossSize(
       const LayoutParams& layout_params) override;
-  LayoutUnit GetMarginBoxMainSize() override;
-  LayoutUnit GetMarginBoxCrossSize() override;
 
-  bool CrossSizeIsAuto() override;
-  bool MarginMainStartIsAuto() override;
-  bool MarginMainEndIsAuto() override;
-  bool MarginCrossStartIsAuto() override;
-  bool MarginCrossEndIsAuto() override;
+  LayoutUnit GetContentBoxMainSize() const override;
+  LayoutUnit GetMarginBoxMainSize() const override;
+  LayoutUnit GetMarginBoxCrossSize() const override;
+
+  bool CrossSizeIsAuto() const override;
+  bool MarginMainStartIsAuto() const override;
+  bool MarginMainEndIsAuto() const override;
+  bool MarginCrossStartIsAuto() const override;
+  bool MarginCrossEndIsAuto() const override;
 
   void SetCrossSize(LayoutUnit cross_size) override;
   void SetMainAxisStart(LayoutUnit position) override;
   void SetCrossAxisStart(LayoutUnit position) override;
 };
 
-LayoutUnit MainAxisVerticalFlexItem::GetContentToMarginMainAxis() {
+LayoutUnit MainAxisVerticalFlexItem::GetContentToMarginMainAxis() const {
   return box()->GetContentToMarginVertical();
 }
 
-LayoutUnit MainAxisVerticalFlexItem::GetContentToMarginCrossAxis() {
+LayoutUnit MainAxisVerticalFlexItem::GetContentToMarginCrossAxis() const {
   return box()->GetContentToMarginHorizontal();
 }
 
-LayoutUnit MainAxisVerticalFlexItem::GetUsedMinMainAxisSize(
-    const SizeLayoutUnit& containing_block_size) {
-  return GetUsedMinHeight(box()->computed_style(), containing_block_size);
+base::Optional<LayoutUnit>
+MainAxisVerticalFlexItem::GetUsedMainAxisSizeIfNotAuto(
+    const SizeLayoutUnit& containing_block_size) const {
+  return GetUsedHeightIfNotAuto(computed_style(), containing_block_size, NULL);
 }
 
-LayoutUnit MainAxisVerticalFlexItem::GetUsedMinCrossAxisSize(
-    const SizeLayoutUnit& containing_block_size) {
-  return GetUsedMinWidth(box()->computed_style(), containing_block_size, NULL);
+base::Optional<LayoutUnit>
+MainAxisVerticalFlexItem::GetUsedMinMainAxisSizeIfNotAuto(
+    const SizeLayoutUnit& containing_block_size) const {
+  return GetUsedMinHeightIfNotAuto(computed_style(), containing_block_size);
+}
+
+base::Optional<LayoutUnit>
+MainAxisVerticalFlexItem::GetUsedMinCrossAxisSizeIfNotAuto(
+    const SizeLayoutUnit& containing_block_size) const {
+  return GetUsedMinWidthIfNotAuto(computed_style(), containing_block_size,
+                                  NULL);
 }
 
 base::Optional<LayoutUnit>
 MainAxisVerticalFlexItem::GetUsedMaxMainAxisSizeIfNotNone(
-    const SizeLayoutUnit& containing_block_size) {
-  return GetUsedMaxHeightIfNotNone(box()->computed_style(),
-                                   containing_block_size);
+    const SizeLayoutUnit& containing_block_size) const {
+  return GetUsedMaxHeightIfNotNone(computed_style(), containing_block_size);
 }
 
 base::Optional<LayoutUnit>
 MainAxisVerticalFlexItem::GetUsedMaxCrossAxisSizeIfNotNone(
-    const SizeLayoutUnit& containing_block_size) {
-  return GetUsedMaxWidthIfNotNone(box()->computed_style(),
-                                  containing_block_size, NULL);
+    const SizeLayoutUnit& containing_block_size) const {
+  return GetUsedMaxWidthIfNotNone(computed_style(), containing_block_size,
+                                  NULL);
 }
 
 void MainAxisVerticalFlexItem::DetermineHypotheticalCrossSize(
@@ -235,36 +258,36 @@
   box()->set_height(target_main_size());
 }
 
-LayoutUnit MainAxisVerticalFlexItem::GetMarginBoxMainSize() {
+LayoutUnit MainAxisVerticalFlexItem::GetContentBoxMainSize() const {
+  return box()->height();
+}
+
+LayoutUnit MainAxisVerticalFlexItem::GetMarginBoxMainSize() const {
   return box()->GetMarginBoxHeight();
 }
 
-LayoutUnit MainAxisVerticalFlexItem::GetMarginBoxCrossSize() {
+LayoutUnit MainAxisVerticalFlexItem::GetMarginBoxCrossSize() const {
   return box()->GetMarginBoxWidth();
 }
 
-bool MainAxisVerticalFlexItem::CrossSizeIsAuto() {
-  return box()->computed_style()->width() == cssom::KeywordValue::GetAuto();
+bool MainAxisVerticalFlexItem::CrossSizeIsAuto() const {
+  return computed_style()->width() == cssom::KeywordValue::GetAuto();
 }
 
-bool MainAxisVerticalFlexItem::MarginMainStartIsAuto() {
-  return box()->computed_style()->margin_top() ==
-         cssom::KeywordValue::GetAuto();
+bool MainAxisVerticalFlexItem::MarginMainStartIsAuto() const {
+  return computed_style()->margin_top() == cssom::KeywordValue::GetAuto();
 }
 
-bool MainAxisVerticalFlexItem::MarginMainEndIsAuto() {
-  return box()->computed_style()->margin_bottom() ==
-         cssom::KeywordValue::GetAuto();
+bool MainAxisVerticalFlexItem::MarginMainEndIsAuto() const {
+  return computed_style()->margin_bottom() == cssom::KeywordValue::GetAuto();
 }
 
-bool MainAxisVerticalFlexItem::MarginCrossStartIsAuto() {
-  return box()->computed_style()->margin_left() ==
-         cssom::KeywordValue::GetAuto();
+bool MainAxisVerticalFlexItem::MarginCrossStartIsAuto() const {
+  return computed_style()->margin_left() == cssom::KeywordValue::GetAuto();
 }
 
-bool MainAxisVerticalFlexItem::MarginCrossEndIsAuto() {
-  return box()->computed_style()->margin_right() ==
-         cssom::KeywordValue::GetAuto();
+bool MainAxisVerticalFlexItem::MarginCrossEndIsAuto() const {
+  return computed_style()->margin_right() == cssom::KeywordValue::GetAuto();
 }
 
 void MainAxisVerticalFlexItem::SetCrossSize(LayoutUnit cross_size) {
@@ -279,21 +302,15 @@
   box()->set_left(position);
 }
 
-FlexItem::FlexItem(Box* box, LayoutUnit flex_base_size,
-                   LayoutUnit hypothetical_main_size)
-    : box_(box),
-      flex_base_size_(flex_base_size),
-      hypothetical_main_size_(hypothetical_main_size) {}
+FlexItem::FlexItem(Box* box, bool main_direction_is_horizontal)
+    : box_(box), main_direction_is_horizontal_(main_direction_is_horizontal) {}
 
-std::unique_ptr<FlexItem> FlexItem::Create(bool main_direction_is_horizontal,
-                                           Box* box, LayoutUnit flex_base_size,
-                                           LayoutUnit hypothetical_main_size) {
+std::unique_ptr<FlexItem> FlexItem::Create(Box* box,
+                                           bool main_direction_is_horizontal) {
   if (main_direction_is_horizontal) {
-    return base::WrapUnique(new MainAxisHorizontalFlexItem(
-        box, flex_base_size, hypothetical_main_size));
+    return base::WrapUnique(new MainAxisHorizontalFlexItem(box));
   } else {
-    return base::WrapUnique(new MainAxisVerticalFlexItem(
-        box, flex_base_size, hypothetical_main_size));
+    return base::WrapUnique(new MainAxisVerticalFlexItem(box));
   }
 }
 
@@ -309,8 +326,7 @@
 const scoped_refptr<cobalt::cssom::PropertyValue>&
 FlexItem::GetUsedAlignSelfPropertyValue() {
   DCHECK(box()->parent());
-  return GetUsedAlignSelf(box()->computed_style(),
-                          box()->parent()->computed_style());
+  return GetUsedAlignSelf(computed_style(), box()->parent()->computed_style());
 }
 
 const scoped_refptr<cobalt::cssom::PropertyValue>&
@@ -319,6 +335,150 @@
   return box()->parent()->computed_style()->justify_content();
 }
 
+bool FlexItem::OverflowIsVisible() const {
+  return computed_style()->overflow() == cssom::KeywordValue::GetVisible();
+}
+
+void FlexItem::DetermineFlexBaseSize(
+    const LayoutParams& layout_params,
+    const base::Optional<LayoutUnit>& main_space,
+    bool container_shrink_to_fit_width_forced) {
+  // Absolutely positioned boxes are not flex items.
+  DCHECK(!box()->IsAbsolutelyPositioned());
+
+  // All flex items are block container boxes.
+  DCHECK(box()->AsBlockContainerBox());
+
+  // Algorithm for determine the flex base size and hypothetical main size of
+  // each item.
+  //   https://www.w3.org/TR/css-flexbox-1/#algo-main-item
+
+  // A. If the item has a definite used flex basis, that's the flex base size.
+  bool flex_basis_depends_on_available_space;
+  base::Optional<LayoutUnit> flex_basis = GetUsedFlexBasisIfNotContent(
+      computed_style(), main_direction_is_horizontal_,
+      layout_params.containing_block_size,
+      &flex_basis_depends_on_available_space);
+  bool flex_basis_is_definite =
+      flex_basis && (!flex_basis_depends_on_available_space || main_space);
+  if (flex_basis_is_definite) {
+    flex_base_size_ = *flex_basis;
+    return;
+  }
+
+  // B. If the flex item has an intrinsic aspect ratio, a used flex basis of
+  //    content, and a definite cross size, then the flex base size is
+  //    calculated from its inner cross size and the flex item's intrinsic
+  //    aspect ratio.
+  // Sizing from intrinsic ratio is not supported.
+
+  bool flex_basis_is_content_or_depends_on_available_space =
+      !flex_basis || flex_basis_depends_on_available_space;
+  // C. If the used flex basis is content or depends on its available space, and
+  //    the flex container is being sized under a min-content or max-content
+  //    constraint, size the item under that constraint. The flex base size is
+  //    the item's resulting main size.
+  if (flex_basis_is_content_or_depends_on_available_space &&
+      container_shrink_to_fit_width_forced) {
+    flex_base_size_ =
+        main_direction_is_horizontal_ ? box()->width() : box()->height();
+    return;
+  }
+
+  // D. Otherwise, if the used flex basis is content or depends on its available
+  //    space, the available main size is infinite, and the flex item's inline
+  //    axis is parallel to the main axis, lay the item out using the rules for
+  //    a box in an orthogonal flow. The flex base size is the item's
+  //    max-content main size.
+  if (flex_basis_is_content_or_depends_on_available_space &&
+      main_direction_is_horizontal_ && !main_space) {
+    flex_base_size_ = box()->width();
+    return;
+  }
+
+  // E. Otherwise, size the item into the available space using its used flex
+  //    basis in place of its main size, treating a value of content as
+  //    max-content. If a cross size is needed to determine the main size (e.g.
+  //    when the flex item's main size is in its block axis) and the flex item's
+  //    cross size is auto and not definite, in this calculation use fit-content
+  //    as the flex item's cross size. The flex base size is the item's
+  //    resulting main size.
+  // TODO: handle 'if (!main_direction_is_horizontal)' and auto
+  // height, see above.
+  flex_base_size_ =
+      main_direction_is_horizontal_ ? box()->width() : box()->height();
+}
+
+void FlexItem::DetermineHypotheticalMainSize(
+    const SizeLayoutUnit& available_space) {
+  // The hypothetical main size is the item's flex base size clamped
+  // according to its used min and max main sizes.
+  base::Optional<LayoutUnit> maybe_min_main_size =
+      GetUsedMinMainAxisSizeIfNotAuto(available_space);
+  LayoutUnit main_size =
+      std::max(maybe_min_main_size.value_or(LayoutUnit()), flex_base_size());
+  base::Optional<LayoutUnit> maybe_max_main_size =
+      GetUsedMaxMainAxisSizeIfNotNone(available_space);
+  if (maybe_max_main_size) {
+    main_size = std::min(*maybe_max_main_size, main_size);
+  }
+  hypothetical_main_size_ = main_size;
+}
+
+base::Optional<LayoutUnit> FlexItem::GetContentBasedMinimumSize(
+    const SizeLayoutUnit& containing_block_size) const {
+  // Automatic Minimum Size of Flex Items.
+  //   https://www.w3.org/TR/css-flexbox-1/#min-size-auto
+
+  // If the item's computed main size property is definite, then the specified
+  // size suggestion is that size (clamped by its max main size property if
+  // it's definite). It is otherwise undefined.
+  //   https://www.w3.org/TR/css-flexbox-1/#specified-size-suggestion
+  base::Optional<LayoutUnit> specified_min_size_suggestion =
+      GetUsedMinMainAxisSizeIfNotAuto(containing_block_size);
+
+  base::Optional<LayoutUnit> specified_size_suggestion =
+      GetUsedMainAxisSizeIfNotAuto(containing_block_size);
+  if (specified_size_suggestion.has_value()) {
+    return specified_min_size_suggestion;
+  }
+
+  base::Optional<LayoutUnit> maybe_max_main_size =
+      GetUsedMaxMainAxisSizeIfNotNone(containing_block_size);
+  if (specified_min_size_suggestion.has_value() &&
+      maybe_max_main_size.has_value()) {
+    specified_min_size_suggestion =
+        std::min(*maybe_max_main_size, *specified_min_size_suggestion);
+  }
+
+  // The content size suggestion is the min-content size in the main axis,
+  // clamped by the max main size property if that is definite.
+  //   https://www.w3.org/TR/css-flexbox-1/#content-size-suggestion
+  base::Optional<LayoutUnit> content_size_suggestion;
+  if (OverflowIsVisible()) {
+    content_size_suggestion = GetContentBoxMainSize();
+    if (maybe_max_main_size.has_value()) {
+      content_size_suggestion =
+          std::min(*maybe_max_main_size, *content_size_suggestion);
+    }
+  }
+
+  if (!specified_min_size_suggestion.has_value()) {
+    // If the box has neither a specified size suggestion nor an aspect ratio,
+    // its content-based minimum size is the content size suggestion.
+    return content_size_suggestion;
+  } else {
+    if (content_size_suggestion.has_value()) {
+      // In general, the content-based minimum size of a flex item is the
+      // smaller of its content size suggestion and its specified size
+      // suggestion.
+      specified_min_size_suggestion =
+          std::min(*content_size_suggestion, *specified_min_size_suggestion);
+      return specified_min_size_suggestion;
+    }
+  }
+  return specified_min_size_suggestion;
+}
 
 }  // namespace layout
 }  // namespace cobalt
diff --git a/src/cobalt/layout/flex_item.h b/src/cobalt/layout/flex_item.h
index 8f12150..91d16bf 100644
--- a/src/cobalt/layout/flex_item.h
+++ b/src/cobalt/layout/flex_item.h
@@ -18,6 +18,7 @@
 #include <vector>
 
 #include "base/logging.h"
+#include "base/optional.h"
 #include "cobalt/layout/box.h"
 #include "cobalt/layout/layout_unit.h"
 
@@ -28,22 +29,23 @@
 class FlexItem {
  public:
   // Disallow Copy and Assign.
-  FlexItem(const FlexItem&) = delete;
+  explicit FlexItem(const FlexItem&) = delete;
   FlexItem& operator=(const FlexItem&) = delete;
-
-  // Default move constructor to make the class emplace constructible.
-  FlexItem(FlexItem&& that) = default;
+  explicit FlexItem(FlexItem&& that) = delete;
 
   virtual ~FlexItem() = default;
 
-  FlexItem(Box* box, LayoutUnit flex_base_size,
-           LayoutUnit hypothetical_main_size);
+  FlexItem(Box* box, bool main_direction_is_horizontal);
 
-  static std::unique_ptr<FlexItem> Create(bool main_direction_is_horizontal_,
-                                          Box* box, LayoutUnit flex_base_size,
-                                          LayoutUnit hypothetical_main_size);
+  static std::unique_ptr<FlexItem> Create(Box* box,
+                                          bool main_direction_is_horizontal);
 
   Box* box() const { return box_; }
+  const scoped_refptr<const cssom::CSSComputedStyleData>& computed_style()
+      const {
+    return box()->computed_style();
+  }
+
   LayoutUnit flex_base_size() const { return flex_base_size_; }
   LayoutUnit hypothetical_main_size() const { return hypothetical_main_size_; }
 
@@ -76,57 +78,79 @@
   const scoped_refptr<cobalt::cssom::PropertyValue>&
   GetUsedJustifyContentPropertyValue();
 
+  // Determine the flex base size.
+  //   https://www.w3.org/TR/css-flexbox-1/#flex-base-size
+  void DetermineFlexBaseSize(const LayoutParams& layout_params,
+                             const base::Optional<LayoutUnit>& main_space,
+                             bool container_shrink_to_fit_width_forced);
+
+  // Determine the hypothetical main size.
+  //   https://www.w3.org/TR/css-flexbox-1/#hypothetical-main-size
+  void DetermineHypotheticalMainSize(const SizeLayoutUnit& available_space);
+
+  base::Optional<LayoutUnit> GetContentBasedMinimumSize(
+      const SizeLayoutUnit& containing_block_size) const;
+
   // Return the size difference between the content and margin box on the main
   // axis.
-  virtual LayoutUnit GetContentToMarginMainAxis() = 0;
+  virtual LayoutUnit GetContentToMarginMainAxis() const = 0;
 
   // Return the size difference between the content and margin box on the cross
   // axis.
-  virtual LayoutUnit GetContentToMarginCrossAxis() = 0;
+  virtual LayoutUnit GetContentToMarginCrossAxis() const = 0;
+
+  // Return the used style for the size in the main axis.
+  virtual base::Optional<LayoutUnit> GetUsedMainAxisSizeIfNotAuto(
+      const SizeLayoutUnit& containing_block_size) const = 0;
 
   // Return the used style for the min size in the main axis.
-  virtual LayoutUnit GetUsedMinMainAxisSize(
-      const SizeLayoutUnit& containing_block_size) = 0;
+  virtual base::Optional<LayoutUnit> GetUsedMinMainAxisSizeIfNotAuto(
+      const SizeLayoutUnit& containing_block_size) const = 0;
 
   // Return the used style for the min size in the cross axis.
-  virtual LayoutUnit GetUsedMinCrossAxisSize(
-      const SizeLayoutUnit& containing_block_size) = 0;
+  virtual base::Optional<LayoutUnit> GetUsedMinCrossAxisSizeIfNotAuto(
+      const SizeLayoutUnit& containing_block_size) const = 0;
 
   // Return the used style for the max size in the main axis.
   virtual base::Optional<LayoutUnit> GetUsedMaxMainAxisSizeIfNotNone(
-      const SizeLayoutUnit& containing_block_size) = 0;
+      const SizeLayoutUnit& containing_block_size) const = 0;
 
   // Return the used style for the max size in the cross axis.
   virtual base::Optional<LayoutUnit> GetUsedMaxCrossAxisSizeIfNotNone(
-      const SizeLayoutUnit& containing_block_size) = 0;
+      const SizeLayoutUnit& containing_block_size) const = 0;
 
   // Determine the hypothetical cross size.
-  // https://www.w3.org/TR/css-flexbox-1/#algo-cross-item
+  //   https://www.w3.org/TR/css-flexbox-1/#algo-cross-item
   virtual void DetermineHypotheticalCrossSize(
       const LayoutParams& layout_params) = 0;
 
-  virtual LayoutUnit GetMarginBoxMainSize() = 0;
-  virtual LayoutUnit GetMarginBoxCrossSize() = 0;
+  virtual LayoutUnit GetContentBoxMainSize() const = 0;
+  virtual LayoutUnit GetMarginBoxMainSize() const = 0;
+  virtual LayoutUnit GetMarginBoxCrossSize() const = 0;
 
   // Return true if the computed cross axis size is auto.
-  virtual bool CrossSizeIsAuto() = 0;
+  virtual bool CrossSizeIsAuto() const = 0;
   // Return true if the margin at the main axis start is auto.
-  virtual bool MarginMainStartIsAuto() = 0;
+  virtual bool MarginMainStartIsAuto() const = 0;
   // Return true if the margin at the main axis end is auto.
-  virtual bool MarginMainEndIsAuto() = 0;
+  virtual bool MarginMainEndIsAuto() const = 0;
   // Return true if the margin at the cross axis start is auto.
-  virtual bool MarginCrossStartIsAuto() = 0;
+  virtual bool MarginCrossStartIsAuto() const = 0;
   // Return true if the margin at the cross axis end is auto.
-  virtual bool MarginCrossEndIsAuto() = 0;
+  virtual bool MarginCrossEndIsAuto() const = 0;
 
   virtual void SetCrossSize(LayoutUnit cross_size) = 0;
   virtual void SetMainAxisStart(LayoutUnit position) = 0;
   virtual void SetCrossAxisStart(LayoutUnit position) = 0;
 
  private:
+  // Return true if the overflow is visible
+  bool OverflowIsVisible() const;
+
   Box* const box_ = nullptr;
-  const LayoutUnit flex_base_size_ = LayoutUnit();
-  const LayoutUnit hypothetical_main_size_ = LayoutUnit();
+  const bool main_direction_is_horizontal_;
+  LayoutUnit flex_base_size_ = LayoutUnit();
+  LayoutUnit hypothetical_main_size_ = LayoutUnit();
 
   LayoutUnit target_main_size_ = LayoutUnit();
   LayoutUnit flex_space_ = LayoutUnit();
@@ -136,6 +160,19 @@
   bool min_violation_ = false;
 };
 
+#ifdef COBALT_BOX_DUMP_ENABLED
+
+inline std::ostream& operator<<(std::ostream& stream, const FlexItem& item) {
+  stream << "flex_base_size= " << item.flex_base_size()
+         << " hypothetical_main_size = " << item.hypothetical_main_size()
+         << " target_main_size = " << item.target_main_size()
+         << " flex_space =" << item.flex_space() << "  box " << *item.box()
+         << " flex_factor = " << item.flex_factor();
+  return stream;
+}
+
+#endif  // COBALT_BOX_DUMP_ENABLED
+
 }  // namespace layout
 }  // namespace cobalt
 
diff --git a/src/cobalt/layout/flex_line.cc b/src/cobalt/layout/flex_line.cc
index 87d2f12..124099a 100644
--- a/src/cobalt/layout/flex_line.cc
+++ b/src/cobalt/layout/flex_line.cc
@@ -35,35 +35,22 @@
   items_outer_main_size_ = LayoutUnit(0);
 }
 
-bool FlexLine::TryAddItem(Box* box, LayoutUnit flex_base_size,
-                          LayoutUnit hypothetical_main_size) {
-  auto item = FlexItem::Create(main_direction_is_horizontal_, box,
-                               flex_base_size, hypothetical_main_size);
-
+bool FlexLine::CanAddItem(const FlexItem& item) const {
   LayoutUnit outer_main_size =
-      hypothetical_main_size + item->GetContentToMarginMainAxis();
-
+      item.hypothetical_main_size() + item.GetContentToMarginMainAxis();
   LayoutUnit next_main_size = items_outer_main_size_ + outer_main_size;
-
   if (!items_.empty() && next_main_size > main_size_) {
     return false;
   }
-
-  items_outer_main_size_ = next_main_size;
-  items_.emplace_back(item.release());
   return true;
 }
 
-void FlexLine::AddItem(Box* box, LayoutUnit flex_base_size,
-                       LayoutUnit hypothetical_main_size) {
-  auto item = FlexItem::Create(main_direction_is_horizontal_, box,
-                               flex_base_size, hypothetical_main_size);
-
+void FlexLine::AddItem(std::unique_ptr<FlexItem>&& item) {
   LayoutUnit outer_main_size =
-      hypothetical_main_size + item->GetContentToMarginMainAxis();
+      item->hypothetical_main_size() + item->GetContentToMarginMainAxis();
 
   items_outer_main_size_ += outer_main_size;
-  items_.emplace_back(item.release());
+  items_.emplace_back(std::move(item));
 }
 
 void FlexLine::ResolveFlexibleLengthsAndCrossSize() {
@@ -91,13 +78,22 @@
     //   greater than its hypothetical main size.
     // - if using the flex shrink factor: any item that has a flex base size
     //   smaller than its hypothetical main size.
+    LayoutUnit hypothetical_main_size = item->hypothetical_main_size();
+
     if (0 == item->flex_factor() ||
         (flex_factor_grow_ &&
-         (item->flex_base_size() > item->hypothetical_main_size())) ||
+         (item->flex_base_size() > hypothetical_main_size)) ||
         (!flex_factor_grow_ &&
-         (item->flex_base_size() < item->hypothetical_main_size()))) {
+         (item->flex_base_size() < hypothetical_main_size))) {
       // Freeze, setting its target main size to its hypothetical main size.
-      item->set_target_main_size(item->hypothetical_main_size());
+      base::Optional<LayoutUnit> content_based_minimum_size =
+          item->GetContentBasedMinimumSize(
+              layout_params_.containing_block_size);
+      if (content_based_minimum_size.has_value()) {
+        hypothetical_main_size =
+            std::max(hypothetical_main_size, *content_based_minimum_size);
+      }
+      item->set_target_main_size(hypothetical_main_size);
 
       // 3. Calculate initial free space.
       // For frozen items, use their outer target main size;
@@ -149,7 +145,10 @@
           initial_free_space * unfrozen_flex_factor_sum;
       // If the magnitude of this value is less than the magnitude of the
       // remaining free space, use this as the remaining free space.
-      if (free_space_magnitude < remaining_free_space) {
+      if ((free_space_magnitude >= LayoutUnit() &&
+           free_space_magnitude < remaining_free_space) ||
+          (free_space_magnitude < LayoutUnit() &&
+           free_space_magnitude > remaining_free_space)) {
         remaining_free_space = free_space_magnitude;
       }
     }
@@ -190,15 +189,22 @@
     LayoutUnit unclamped_size = LayoutUnit();
     LayoutUnit clamped_size = LayoutUnit();
     for (auto& item : flexible_items) {
-      LayoutUnit used_min_space =
-          item->GetUsedMinMainAxisSize(layout_params_.containing_block_size);
+      base::Optional<LayoutUnit> maybe_used_min_space;
+      if (flex_factor_grow_) {
+        maybe_used_min_space = item->GetUsedMinMainAxisSizeIfNotAuto(
+            layout_params_.containing_block_size);
+      } else {
+        maybe_used_min_space = item->GetContentBasedMinimumSize(
+            layout_params_.containing_block_size);
+      }
       base::Optional<LayoutUnit> used_max_space =
           item->GetUsedMaxMainAxisSizeIfNotNone(
               layout_params_.containing_block_size);
 
       unclamped_size += item->target_main_size();
-      if (item->target_main_size() < used_min_space) {
-        item->set_target_main_size(used_min_space);
+      if (maybe_used_min_space &&
+          (item->target_main_size() < *maybe_used_min_space)) {
+        item->set_target_main_size(*maybe_used_min_space);
         item->set_min_violation(true);
       } else if (used_max_space && item->target_main_size() > *used_max_space) {
         item->set_target_main_size(*used_max_space);
@@ -262,7 +268,6 @@
   // Algorithm for Calculate the cross size of each flex line.
   //   https://www.w3.org/TR/css-flexbox-1/#algo-cross-line
 
-  LayoutUnit max_baseline_to_top = LayoutUnit();
   LayoutUnit max_baseline_to_bottom = LayoutUnit();
   LayoutUnit max_hypothetical_cross_size = LayoutUnit();
   for (auto& item : items_) {
@@ -277,15 +282,13 @@
       // hypothetical outer cross-start edge,
       LayoutUnit baseline_to_top =
           item->box()->GetBaselineOffsetFromTopMarginEdge();
-      if (baseline_to_top > max_baseline_to_top) {
-        max_baseline_to_top = baseline_to_top;
-      }
+      max_baseline_to_top_ = std::max(
+          max_baseline_to_top_.value_or(LayoutUnit()), baseline_to_top);
       // and the largest of the distances between each item's baseline and its
       // hypothetical outer cross-end edge,
       LayoutUnit baseline_to_bottom = item->box()->height() - baseline_to_top;
-      if (baseline_to_bottom > max_baseline_to_bottom) {
-        max_baseline_to_bottom = baseline_to_bottom;
-      }
+      max_baseline_to_bottom =
+          std::max(max_baseline_to_bottom, baseline_to_bottom);
     } else {
       // 2. Among all the items not collected by the previous step, find the
       // largest outer hypothetical cross size.
@@ -297,7 +300,7 @@
   }
   // ... and sum these two values.
   LayoutUnit max_baseline_cross_size =
-      max_baseline_to_top + max_baseline_to_bottom;
+      max_baseline_to_top_.value_or(LayoutUnit()) + max_baseline_to_bottom;
 
   // 3. The used cross-size of the flex line is the largest of the numbers
   // found in the previous two steps and zero.
@@ -307,40 +310,34 @@
 void FlexLine::DetermineUsedCrossSizes(LayoutUnit container_cross_size) {
   // 11. Determine the used cross size of each flex item->
   //   https://www.w3.org/TR/css-flexbox-1/#algo-stretch
-  if (main_direction_is_horizontal_) {
-    SizeLayoutUnit containing_block_size(LayoutUnit(), container_cross_size);
-    for (auto& item : items_) {
-      // If a flex item has align-self: stretch,
-      // its computed cross size property is auto,
-      // and neither of its cross-axis margins are auto,
-      if (item->GetUsedAlignSelfPropertyValue() ==
-              cssom::KeywordValue::GetStretch() &&
-          item->CrossSizeIsAuto() && !item->MarginCrossStartIsAuto() &&
-          !item->MarginCrossEndIsAuto()) {
-        // The used outer cross size is the used cross size of its flex line,
-        // clamped according to the item's used min and max cross sizes.
-        LayoutUnit cross_size =
-            cross_size_ - item->GetContentToMarginCrossAxis();
-        LayoutUnit min_cross_size =
-            item->GetUsedMinMainAxisSize(containing_block_size);
-        if (min_cross_size > cross_size) {
-          cross_size = min_cross_size;
-        }
-        base::Optional<LayoutUnit> max_cross_size =
-            item->GetUsedMaxCrossAxisSizeIfNotNone(containing_block_size);
-        if (max_cross_size && *max_cross_size < cross_size) {
-          cross_size = *max_cross_size;
-        }
-        item->SetCrossSize(cross_size);
-
-        // TODO: If the flex item has align-self: stretch, redo layout for its
-        // contents, treating this used size as its definite cross size so that
-        // percentage-sized children can be resolved.
+  SizeLayoutUnit containing_block_size(LayoutUnit(), container_cross_size);
+  for (auto& item : items_) {
+    // If a flex item has align-self: stretch,
+    // its computed cross size property is auto,
+    // and neither of its cross-axis margins are auto,
+    if (item->GetUsedAlignSelfPropertyValue() ==
+            cssom::KeywordValue::GetStretch() &&
+        item->CrossSizeIsAuto() && !item->MarginCrossStartIsAuto() &&
+        !item->MarginCrossEndIsAuto()) {
+      // The used outer cross size is the used cross size of its flex line,
+      // clamped according to the item's used min and max cross sizes.
+      LayoutUnit cross_size = cross_size_ - item->GetContentToMarginCrossAxis();
+      base::Optional<LayoutUnit> min_cross_size =
+          item->GetUsedMinCrossAxisSizeIfNotAuto(containing_block_size);
+      if (min_cross_size && (*min_cross_size > cross_size)) {
+        cross_size = *min_cross_size;
       }
+      base::Optional<LayoutUnit> max_cross_size =
+          item->GetUsedMaxCrossAxisSizeIfNotNone(containing_block_size);
+      if (max_cross_size && *max_cross_size < cross_size) {
+        cross_size = *max_cross_size;
+      }
+      item->SetCrossSize(cross_size);
+
+      // TODO: If the flex item has align-self: stretch, redo layout for its
+      // contents, treating this used size as its definite cross size so that
+      // percentage-sized children can be resolved.
     }
-  } else {
-    // TODO: implement this for column flex containers.
-    NOTIMPLEMENTED() << "Column flex boxes not yet implemented.";
   }
 }
 
@@ -358,12 +355,6 @@
   // 12. Distribute any remaining free space.
   //   https://www.w3.org/TR/css-flexbox-1/#algo-main-align
 
-  // TODO implement for row-reverse, column, and column-reverse.
-  if (!main_direction_is_horizontal_) {
-    // TODO: implement this for column flex containers.
-    NOTIMPLEMENTED() << "Column flex boxes not yet implemented.";
-  }
-
   // If the remaining free space is positive and at least one main-axis margin
   // on this line is auto, distribute the free space equally among these
   // margins.
@@ -377,8 +368,8 @@
     auto_margins[margin_idx++] = auto_main_end;
     auto_margin_count += (auto_main_start ? 1 : 0) + (auto_main_end ? 1 : 0);
   }
+  LayoutUnit leftover_free_space = main_size_ - items_outer_main_size_;
   if (auto_margin_count > 0) {
-    LayoutUnit leftover_free_space = main_size_ - items_outer_main_size_;
     LayoutUnit free_space_between = leftover_free_space / auto_margin_count;
 
     margin_idx = 0;
@@ -400,9 +391,16 @@
   const scoped_refptr<cobalt::cssom::PropertyValue>& justify_content =
       items_.front()->GetUsedJustifyContentPropertyValue();
 
-  if (justify_content == cssom::KeywordValue::GetFlexStart()) {
+  bool leftover_free_space_is_negative = leftover_free_space < LayoutUnit();
+
+  if (justify_content == cssom::KeywordValue::GetFlexStart() ||
+      (leftover_free_space_is_negative &&
+       justify_content == cssom::KeywordValue::GetSpaceBetween())) {
     // Flex items are packed toward the start of the line.
     //   https://www.w3.org/TR/css-flexbox-1/#valdef-justify-content-flex-start
+    // If the leftover free-space is negative, space-between is identical to
+    // flex-start.
+    //   https://www.w3.org/TR/css-flexbox-1/#valdef-justify-content-space-between
     LayoutUnit pos = LayoutUnit();
     for (auto& item : items_) {
       LayoutUnit main_size = item->GetMarginBoxMainSize();
@@ -420,10 +418,15 @@
       pos -= main_size;
       SetMainAxisPosition(pos, item.get());
     }
-  } else if (justify_content == cssom::KeywordValue::GetCenter()) {
+  } else if (justify_content == cssom::KeywordValue::GetCenter() ||
+             (leftover_free_space_is_negative &&
+              justify_content == cssom::KeywordValue::GetSpaceAround())) {
     // Flex items are packed toward the center of the line.
     //   https://www.w3.org/TR/css-flexbox-1/#valdef-justify-content-center
-    LayoutUnit pos = (main_size_ - items_outer_main_size_) / 2;
+    // If the leftover free-space is negative, space-around is identical to
+    // center.
+    //   https://www.w3.org/TR/css-flexbox-1/#valdef-justify-content-space-around
+    LayoutUnit pos = leftover_free_space / 2;
     for (auto& item : items_) {
       LayoutUnit main_size = item->GetMarginBoxMainSize();
       SetMainAxisPosition(pos, item.get());
@@ -432,7 +435,6 @@
   } else if (justify_content == cssom::KeywordValue::GetSpaceBetween()) {
     // Flex items are evenly distributed in the line.
     //   https://www.w3.org/TR/css-flexbox-1/#valdef-justify-content-space-between
-    LayoutUnit leftover_free_space = main_size_ - items_outer_main_size_;
     LayoutUnit free_space_between =
         (items_.size() < 2)
             ? LayoutUnit()
@@ -447,7 +449,6 @@
     // Flex items are evenly distributed in the line, with half-size spaces on
     // either end.
     //   https://www.w3.org/TR/css-flexbox-1/#valdef-justify-content-space-around
-    LayoutUnit leftover_free_space = main_size_ - items_outer_main_size_;
     LayoutUnit free_space_between =
         leftover_free_space / static_cast<int>(items_.size());
     LayoutUnit free_space_before = free_space_between / 2;
@@ -465,11 +466,6 @@
 }
 
 void FlexLine::DoCrossAxisAlignment(LayoutUnit line_cross_axis_start) {
-  if (!main_direction_is_horizontal_) {
-    NOTIMPLEMENTED() << "Column flex boxes not yet implemented.";
-  }
-
-  line_cross_axis_start_ = line_cross_axis_start;
   // Algorithm for cross axis alignment:
   //   https://www.w3.org/TR/css-flexbox-1/#cross-alignment
   // 13. Resolve cross-axis auto margins.
@@ -494,6 +490,11 @@
       } else if (align_self == cssom::KeywordValue::GetCenter()) {
         cross_axis_start = (cross_size_ - cross_size) / 2;
       } else if (align_self == cssom::KeywordValue::GetBaseline()) {
+        if (main_direction_is_horizontal_ && max_baseline_to_top_.has_value()) {
+          LayoutUnit baseline_to_top =
+              item->box()->GetBaselineOffsetFromTopMarginEdge();
+          cross_axis_start = *max_baseline_to_top_ - baseline_to_top;
+        }
       } else {
         DCHECK((align_self == cssom::KeywordValue::GetFlexStart()) ||
                (align_self == cssom::KeywordValue::GetStretch()));
@@ -504,14 +505,15 @@
 }
 
 LayoutUnit FlexLine::GetBaseline() {
-  // TODO: Complete implementation of flex container baselines.
-  //   https://www.w3.org/TR/css-flexbox-1/#flex-baselines
-
-  LayoutUnit baseline = LayoutUnit();
-  if (!items_.empty()) {
-    baseline = items_.front()->box()->GetBaselineOffsetFromTopMarginEdge();
+  if (max_baseline_to_top_.has_value()) {
+    return *max_baseline_to_top_;
   }
-  return line_cross_axis_start_ + baseline;
+  LayoutUnit baseline = cross_size_;
+  if (!items_.empty()) {
+    Box* box = items_.front()->box();
+    baseline = box->top() + box->GetBaselineOffsetFromTopMarginEdge();
+  }
+  return baseline;
 }
 
 }  // namespace layout
diff --git a/src/cobalt/layout/flex_line.h b/src/cobalt/layout/flex_line.h
index 4d4a9ee..1cca9e5 100644
--- a/src/cobalt/layout/flex_line.h
+++ b/src/cobalt/layout/flex_line.h
@@ -15,9 +15,11 @@
 #ifndef COBALT_LAYOUT_FLEX_LINE_H_
 #define COBALT_LAYOUT_FLEX_LINE_H_
 
+#include <memory>
 #include <vector>
 
 #include "base/logging.h"
+#include "base/optional.h"
 #include "cobalt/layout/box.h"
 #include "cobalt/layout/flex_item.h"
 #include "cobalt/layout/layout_unit.h"
@@ -34,14 +36,12 @@
   FlexLine(const LayoutParams& layout_params, bool main_direction_is_horizontal,
            bool direction_is_reversed, LayoutUnit main_size);
 
-  // Attempt to add the item to the line. Returns true if the box was
-  // added to the line.
-  bool TryAddItem(Box* box, LayoutUnit flex_base_size,
-                  LayoutUnit hypothetical_main_size);
+  // Return whether the item to can be added to the line. Returns false if the
+  // item does not fit.
+  bool CanAddItem(const FlexItem& item) const;
 
   // Add the item to the line.
-  void AddItem(Box* box, LayoutUnit flex_base_size,
-               LayoutUnit hypothetical_main_size);
+  void AddItem(std::unique_ptr<FlexItem>&& item);
 
   void ResolveFlexibleLengthsAndCrossSize();
   void CalculateCrossSize();
@@ -68,10 +68,10 @@
 
   bool flex_factor_grow_;
   LayoutUnit items_outer_main_size_;
-  LayoutUnit line_cross_axis_start_;
   std::vector<std::unique_ptr<FlexItem>> items_;
 
   LayoutUnit cross_size_;
+  base::Optional<LayoutUnit> max_baseline_to_top_;
 };
 
 }  // namespace layout
diff --git a/src/cobalt/layout/intersection_observer_target.cc b/src/cobalt/layout/intersection_observer_target.cc
index 19fd041..24741e2 100644
--- a/src/cobalt/layout/intersection_observer_target.cc
+++ b/src/cobalt/layout/intersection_observer_target.cc
@@ -17,6 +17,7 @@
 #include <algorithm>
 #include <vector>
 
+#include "base/trace_event/trace_event.h"
 #include "cobalt/cssom/computed_style_utils.h"
 #include "cobalt/cssom/keyword_value.h"
 #include "cobalt/layout/box.h"
@@ -29,6 +30,9 @@
 
 void IntersectionObserverTarget::UpdateIntersectionObservationsForTarget(
     ContainerBox* target_box) {
+  TRACE_EVENT0(
+      "cobalt::layout",
+      "IntersectionObserverTarget::UpdateIntersectionObservationsForTarget()");
   // Walk up the containing block chain looking for the box referencing the
   // IntersectionObserverRoot corresponding to this IntersectionObserverTarget.
   // Skip further processing for the target if it is not a descendant of the
@@ -64,16 +68,14 @@
   // Let intersectionArea be intersectionRect's area.
   float intersection_area = intersection_rect.size().GetArea();
 
-  // Let isIntersecting be true if targetRect and rootBounds intersect or are
-  // edge-adjacent, even if the intersection has zero area (because rootBounds
-  // or targetRect have zero area); otherwise, let isIntersecting be false.
-  bool is_intersecting =
-      intersection_rect.width() != 0 || intersection_rect.height() != 0;
-
   // If targetArea is non-zero, let intersectionRatio be intersectionArea
   // divided by targetArea. Otherwise, let intersectionRatio be 1 if
-  // isIntersecting is true, or 0 if isIntersecting is false.
-  float intersection_ratio = is_intersecting ? 1.0f : 0.0f;
+  // targetRect and rootBounds are edge-adjacent (in the case that targetRect or
+  // rootbounds have zero area), and 0 otherwise.
+  float intersection_ratio =
+      (intersection_rect.width() != 0 || intersection_rect.height() != 0)
+          ? 1.0f
+          : 0.0f;
   if (target_area != 0) {
     intersection_ratio = intersection_area / target_area;
   }
@@ -92,6 +94,9 @@
     }
   }
 
+  // Set isIntersecting to true if |threshold_index| > 0, and false otherwise.
+  bool is_intersecting = threshold_index > 0;
+
   // If thresholdIndex does not equal previousThresholdIndex or if
   // isIntersecting does not equal previousIsIntersecting, queue an
   // IntersectionObserverEntry, passing in observer, time, rootBounds,
diff --git a/src/cobalt/layout/replaced_box.cc b/src/cobalt/layout/replaced_box.cc
index b5b3dac..3d2a447 100644
--- a/src/cobalt/layout/replaced_box.cc
+++ b/src/cobalt/layout/replaced_box.cc
@@ -449,12 +449,16 @@
 
     base::Optional<LayoutUnit> maybe_max_width = GetUsedMaxWidthIfNotNone(
         computed_style(), layout_params.containing_block_size, NULL);
-    LayoutUnit min_width = GetUsedMinWidth(
-        computed_style(), layout_params.containing_block_size, NULL);
+    LayoutUnit min_width =
+        GetUsedMinWidthIfNotAuto(computed_style(),
+                                 layout_params.containing_block_size, NULL)
+            .value_or(LayoutUnit());
     base::Optional<LayoutUnit> maybe_max_height = GetUsedMaxHeightIfNotNone(
         computed_style(), layout_params.containing_block_size);
     LayoutUnit min_height =
-        GetUsedMinHeight(computed_style(), layout_params.containing_block_size);
+        GetUsedMinHeightIfNotAuto(computed_style(),
+                                  layout_params.containing_block_size)
+            .value_or(LayoutUnit());
 
     // The values w and h stand for the results of the width and height
     // computations ignoring the 'min-width', 'min-height', 'max-width' and
diff --git a/src/cobalt/layout/used_style.cc b/src/cobalt/layout/used_style.cc
index 7a811f7..76ce1cc 100644
--- a/src/cobalt/layout/used_style.cc
+++ b/src/cobalt/layout/used_style.cc
@@ -1475,6 +1475,93 @@
   }
 };
 
+class UsedMinLengthProvider : public UsedLengthValueProvider {
+ public:
+  explicit UsedMinLengthProvider(LayoutUnit percentage_base)
+      : UsedLengthValueProvider(percentage_base) {}
+
+  void VisitKeyword(cssom::KeywordValue* keyword) override {
+    switch (keyword->value()) {
+      case cssom::KeywordValue::kAuto:
+        depends_on_containing_block_ = false;
+        // Leave |used_length_| in disengaged state to indicate that "auto"
+        // was the value.
+        break;
+
+      case cssom::KeywordValue::kAbsolute:
+      case cssom::KeywordValue::kAlternate:
+      case cssom::KeywordValue::kAlternateReverse:
+      case cssom::KeywordValue::kBackwards:
+      case cssom::KeywordValue::kBaseline:
+      case cssom::KeywordValue::kBlock:
+      case cssom::KeywordValue::kBoth:
+      case cssom::KeywordValue::kBottom:
+      case cssom::KeywordValue::kBreakWord:
+      case cssom::KeywordValue::kCenter:
+      case cssom::KeywordValue::kClip:
+      case cssom::KeywordValue::kCollapse:
+      case cssom::KeywordValue::kColumn:
+      case cssom::KeywordValue::kColumnReverse:
+      case cssom::KeywordValue::kContain:
+      case cssom::KeywordValue::kContent:
+      case cssom::KeywordValue::kCover:
+      case cssom::KeywordValue::kCurrentColor:
+      case cssom::KeywordValue::kCursive:
+      case cssom::KeywordValue::kEllipsis:
+      case cssom::KeywordValue::kEnd:
+      case cssom::KeywordValue::kEquirectangular:
+      case cssom::KeywordValue::kFantasy:
+      case cssom::KeywordValue::kFixed:
+      case cssom::KeywordValue::kFlex:
+      case cssom::KeywordValue::kFlexEnd:
+      case cssom::KeywordValue::kFlexStart:
+      case cssom::KeywordValue::kForwards:
+      case cssom::KeywordValue::kHidden:
+      case cssom::KeywordValue::kInfinite:
+      case cssom::KeywordValue::kInherit:
+      case cssom::KeywordValue::kInitial:
+      case cssom::KeywordValue::kInline:
+      case cssom::KeywordValue::kInlineBlock:
+      case cssom::KeywordValue::kInlineFlex:
+      case cssom::KeywordValue::kLeft:
+      case cssom::KeywordValue::kLineThrough:
+      case cssom::KeywordValue::kMiddle:
+      case cssom::KeywordValue::kMonoscopic:
+      case cssom::KeywordValue::kMonospace:
+      case cssom::KeywordValue::kNone:
+      case cssom::KeywordValue::kNoRepeat:
+      case cssom::KeywordValue::kNormal:
+      case cssom::KeywordValue::kNowrap:
+      case cssom::KeywordValue::kPre:
+      case cssom::KeywordValue::kPreLine:
+      case cssom::KeywordValue::kPreWrap:
+      case cssom::KeywordValue::kRelative:
+      case cssom::KeywordValue::kRepeat:
+      case cssom::KeywordValue::kReverse:
+      case cssom::KeywordValue::kRight:
+      case cssom::KeywordValue::kRow:
+      case cssom::KeywordValue::kRowReverse:
+      case cssom::KeywordValue::kSansSerif:
+      case cssom::KeywordValue::kScroll:
+      case cssom::KeywordValue::kSerif:
+      case cssom::KeywordValue::kSolid:
+      case cssom::KeywordValue::kSpaceAround:
+      case cssom::KeywordValue::kSpaceBetween:
+      case cssom::KeywordValue::kStart:
+      case cssom::KeywordValue::kStatic:
+      case cssom::KeywordValue::kStereoscopicLeftRight:
+      case cssom::KeywordValue::kStereoscopicTopBottom:
+      case cssom::KeywordValue::kStretch:
+      case cssom::KeywordValue::kTop:
+      case cssom::KeywordValue::kUppercase:
+      case cssom::KeywordValue::kVisible:
+      case cssom::KeywordValue::kWrap:
+      case cssom::KeywordValue::kWrapReverse:
+        NOTREACHED();
+    }
+  }
+};
+
 class UsedFlexBasisProvider : public UsedLengthValueProvider {
  public:
   explicit UsedFlexBasisProvider(LayoutUnit percentage_base)
@@ -1485,6 +1572,7 @@
   void VisitKeyword(cssom::KeywordValue* keyword) override {
     switch (keyword->value()) {
       case cssom::KeywordValue::kAuto: {
+        depends_on_containing_block_ = false;
         flex_basis_is_auto_ = true;
         // Leave |used_length_| in disengaged state to indicate that "auto"
         // was the value.
@@ -1691,29 +1779,29 @@
   return used_length_provider.used_length();
 }
 
-LayoutUnit GetUsedMinHeight(
+base::Optional<LayoutUnit> GetUsedMinHeightIfNotAuto(
     const scoped_refptr<const cssom::CSSComputedStyleData>& computed_style,
     const SizeLayoutUnit& containing_block_size) {
   // Percentages: refer to height of containing block.
   //   https://www.w3.org/TR/CSS21/visudet.html#propdef-max-height
-  UsedLengthValueProvider used_length_provider(containing_block_size.height());
+  UsedMinLengthProvider used_length_provider(containing_block_size.height());
   computed_style->min_height()->Accept(&used_length_provider);
-  return *used_length_provider.used_length();
+  return used_length_provider.used_length();
 }
 
-LayoutUnit GetUsedMinWidth(
+base::Optional<LayoutUnit> GetUsedMinWidthIfNotAuto(
     const scoped_refptr<const cssom::CSSComputedStyleData>& computed_style,
     const SizeLayoutUnit& containing_block_size,
     bool* width_depends_on_containing_block) {
   // Percentages: refer to width of containing block.
   //   https://www.w3.org/TR/CSS21/visudet.html#propdef-min-width
-  UsedLengthValueProvider used_length_provider(containing_block_size.width());
+  UsedMinLengthProvider used_length_provider(containing_block_size.width());
   computed_style->min_width()->Accept(&used_length_provider);
   if (width_depends_on_containing_block != NULL) {
     *width_depends_on_containing_block =
         used_length_provider.depends_on_containing_block();
   }
-  return *used_length_provider.used_length();
+  return used_length_provider.used_length();
 }
 
 base::Optional<LayoutUnit> GetUsedHeightIfNotAuto(
diff --git a/src/cobalt/layout/used_style.h b/src/cobalt/layout/used_style.h
index 6aede9f..f2a859a 100644
--- a/src/cobalt/layout/used_style.h
+++ b/src/cobalt/layout/used_style.h
@@ -395,10 +395,10 @@
     const scoped_refptr<const cssom::CSSComputedStyleData>& computed_style,
     const SizeLayoutUnit& containing_block_size,
     bool* width_depends_on_containing_block);
-LayoutUnit GetUsedMinHeight(
+base::Optional<LayoutUnit> GetUsedMinHeightIfNotAuto(
     const scoped_refptr<const cssom::CSSComputedStyleData>& computed_style,
     const SizeLayoutUnit& containing_block_size);
-LayoutUnit GetUsedMinWidth(
+base::Optional<LayoutUnit> GetUsedMinWidthIfNotAuto(
     const scoped_refptr<const cssom::CSSComputedStyleData>& computed_style,
     const SizeLayoutUnit& containing_block_size,
     bool* width_depends_on_containing_block);
diff --git a/src/cobalt/layout/used_style_test.cc b/src/cobalt/layout/used_style_test.cc
index 267fea5..f19fa22 100644
--- a/src/cobalt/layout/used_style_test.cc
+++ b/src/cobalt/layout/used_style_test.cc
@@ -526,7 +526,7 @@
   EXPECT_EQ(*used_width, LayoutUnit(25.0f));
 }
 
-TEST(UsedStyleTest, UsedMaxHeightNoneDependsOnContainingBlock) {
+TEST(UsedStyleTest, UsedMaxHeightNone) {
   scoped_refptr<cssom::MutableCSSComputedStyleData> computed_style(
       new cssom::MutableCSSComputedStyleData());
   computed_style->set_max_height(cssom::KeywordValue::GetNone());
@@ -598,14 +598,25 @@
   EXPECT_EQ(*used_max_width, LayoutUnit(25.0f));
 }
 
+TEST(UsedStyleTest, UsedMinHeightAuto) {
+  scoped_refptr<cssom::MutableCSSComputedStyleData> computed_style(
+      new cssom::MutableCSSComputedStyleData());
+  computed_style->set_min_height(cssom::KeywordValue::GetAuto());
+  SizeLayoutUnit containing_block_size(LayoutUnit(200.0f), LayoutUnit(400.0f));
+  auto used_min_height =
+      GetUsedMinHeightIfNotAuto(computed_style, containing_block_size);
+  EXPECT_FALSE(used_min_height);
+}
+
 TEST(UsedStyleTest, UsedMinHeightPercentDependsOnContainingBlockHeight) {
   scoped_refptr<cssom::MutableCSSComputedStyleData> computed_style(
       new cssom::MutableCSSComputedStyleData());
   computed_style->set_min_height(new cssom::PercentageValue(0.25f));
   SizeLayoutUnit containing_block_size(LayoutUnit(200.0f), LayoutUnit(400.0f));
   auto used_min_height =
-      GetUsedMinHeight(computed_style, containing_block_size);
-  EXPECT_EQ(used_min_height, LayoutUnit(100.0f));
+      GetUsedMinHeightIfNotAuto(computed_style, containing_block_size);
+  EXPECT_TRUE(used_min_height);
+  EXPECT_EQ(*used_min_height, LayoutUnit(100.0f));
 }
 
 TEST(UsedStyleTest, UsedMinHeightLengthValue) {
@@ -615,8 +626,21 @@
       new cssom::LengthValue(25.0f, cssom::kPixelsUnit));
   SizeLayoutUnit containing_block_size(LayoutUnit(200.0f), LayoutUnit(400.0f));
   auto used_min_height =
-      GetUsedMinHeight(computed_style, containing_block_size);
-  EXPECT_EQ(used_min_height, LayoutUnit(25.0f));
+      GetUsedMinHeightIfNotAuto(computed_style, containing_block_size);
+  EXPECT_TRUE(used_min_height);
+  EXPECT_EQ(*used_min_height, LayoutUnit(25.0f));
+}
+
+TEST(UsedStyleTest, UsedMinWidthAutoDoesNotDependOnContainingBlockWidth) {
+  scoped_refptr<cssom::MutableCSSComputedStyleData> computed_style(
+      new cssom::MutableCSSComputedStyleData());
+  computed_style->set_min_width(cssom::KeywordValue::GetAuto());
+  SizeLayoutUnit containing_block_size(LayoutUnit(200.0f), LayoutUnit(400.0f));
+  bool depends_on_containing_block = false;
+  auto used_min_width = GetUsedMinWidthIfNotAuto(
+      computed_style, containing_block_size, &depends_on_containing_block);
+  EXPECT_FALSE(depends_on_containing_block);
+  EXPECT_FALSE(used_min_width);
 }
 
 TEST(UsedStyleTest, UsedMinWidthPercentDependsOnContainingBlockWidth) {
@@ -625,10 +649,11 @@
   computed_style->set_min_width(new cssom::PercentageValue(0.25f));
   SizeLayoutUnit containing_block_size(LayoutUnit(200.0f), LayoutUnit(400.0f));
   bool depends_on_containing_block = false;
-  auto used_min_width = GetUsedMinWidth(computed_style, containing_block_size,
-                                        &depends_on_containing_block);
+  auto used_min_width = GetUsedMinWidthIfNotAuto(
+      computed_style, containing_block_size, &depends_on_containing_block);
   EXPECT_TRUE(depends_on_containing_block);
-  EXPECT_EQ(used_min_width, LayoutUnit(50.0f));
+  EXPECT_TRUE(used_min_width);
+  EXPECT_EQ(*used_min_width, LayoutUnit(50.0f));
 }
 
 TEST(UsedStyleTest, UsedMinWidthLengthValue) {
@@ -638,10 +663,11 @@
       new cssom::LengthValue(25.0f, cssom::kPixelsUnit));
   SizeLayoutUnit containing_block_size(LayoutUnit(200.0f), LayoutUnit(400.0f));
   bool depends_on_containing_block = false;
-  auto used_min_width = GetUsedMinWidth(computed_style, containing_block_size,
-                                        &depends_on_containing_block);
+  auto used_min_width = GetUsedMinWidthIfNotAuto(
+      computed_style, containing_block_size, &depends_on_containing_block);
   EXPECT_FALSE(depends_on_containing_block);
-  EXPECT_EQ(used_min_width, LayoutUnit(25.0f));
+  EXPECT_TRUE(used_min_width);
+  EXPECT_EQ(*used_min_width, LayoutUnit(25.0f));
 }
 
 TEST(UsedStyleTest, UsedHeightAutoDependsOnContainingBlock) {
diff --git a/src/cobalt/layout_tests/layout_benchmarks.cc b/src/cobalt/layout_tests/layout_benchmarks.cc
deleted file mode 100644
index c8fbb43..0000000
--- a/src/cobalt/layout_tests/layout_benchmarks.cc
+++ /dev/null
@@ -1,332 +0,0 @@
-// Copyright 2015 The Cobalt Authors. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#include <memory>
-
-#include "base/strings/string_util.h"
-#include "base/synchronization/waitable_event.h"
-#include "cobalt/base/event_dispatcher.h"
-#include "cobalt/cssom/viewport_size.h"
-#include "cobalt/dom/benchmark_stat_names.h"
-#include "cobalt/layout/benchmark_stat_names.h"
-#include "cobalt/layout_tests/layout_snapshot.h"
-#include "cobalt/layout_tests/test_parser.h"
-#include "cobalt/math/size.h"
-#include "cobalt/renderer/pipeline.h"
-#include "cobalt/renderer/renderer_module.h"
-#include "cobalt/renderer/submission.h"
-#include "cobalt/system_window/system_window.h"
-#include "cobalt/trace_event/benchmark.h"
-#include "url/gurl.h"
-
-using cobalt::cssom::ViewportSize;
-
-namespace cobalt {
-namespace layout_tests {
-
-namespace {
-const int kViewportWidth = 1920;
-const int kViewportHeight = 1080;
-
-const ViewportSize kViewSize(kViewportWidth, kViewportHeight);
-
-// The RendererBenchmarkRunner sets up an environment where we can control
-// the number of benchmark samples we acquire from the renderer by counting
-// each time the renderer submit complete callback is made.  It also manages
-// the skipping of the first frame to avoid the first frame outlier.
-class RendererBenchmarkRunner {
- public:
-  RendererBenchmarkRunner()
-      : done_gathering_samples_(
-            base::WaitableEvent::ResetPolicy::MANUAL,
-            base::WaitableEvent::InitialState::NOT_SIGNALED),
-        system_window_(new system_window::SystemWindow(
-            &event_dispatcher_, kViewSize.width_height())) {
-    // Since we'd like to measure the renderer, we force it to rasterize each
-    // frame despite the fact that the render tree may not be changing.
-    renderer::RendererModule::Options renderer_options;
-    renderer_options.submit_even_if_render_tree_is_unchanged = true;
-    renderer_module_.emplace(system_window_.get(), renderer_options);
-  }
-
-  // Return the resource provider from the internal renderer so that it can
-  // be used during layout.
-  render_tree::ResourceProvider* GetResourceProvider() {
-    return renderer_module_->pipeline()->GetResourceProvider();
-  }
-
-  // Run the renderer benchmarks and perform the measurements.
-  void RunBenchmarks(const browser::WebModule::LayoutResults& layout_results,
-                     int samples_to_gather) {
-    // Initialize our per-RunBenchmarks() state.
-    samples_to_gather_ = samples_to_gather;
-    done_gathering_samples_.Reset();
-
-    renderer::Submission submission_with_callback(layout_results.render_tree,
-                                                  layout_results.layout_time);
-    submission_with_callback.on_rasterized_callbacks.emplace_back(base::Bind(
-        &RendererBenchmarkRunner::OnSubmitComplete, base::Unretained(this)));
-
-    renderer_module_->pipeline()->Submit(submission_with_callback);
-
-    done_gathering_samples_.Wait();
-
-    renderer_module_->pipeline()->Clear();
-  }
-
- private:
-  // Called whenever the renderer completes a frame submission.  This allows us
-  // to count how many frames have been submitted so we know when to stop (via
-  // the signaling of the done_gathering_samples_ event).
-  void OnSubmitComplete() {
-    --samples_to_gather_;
-
-    // We wait for samples_to_gather + 1 submits to complete because we actually
-    // want samples_to_gather, but we skipped the first submit.
-    if (samples_to_gather_ <= 0) {
-      done_gathering_samples_.Signal();
-    }
-  }
-
-  int samples_to_gather_;
-  base::WaitableEvent done_gathering_samples_;
-  base::EventDispatcher event_dispatcher_;
-
-  std::unique_ptr<system_window::SystemWindow> system_window_;
-  base::Optional<renderer::RendererModule> renderer_module_;
-};
-
-}  // namespace
-
-class LayoutBenchmark : public trace_event::Benchmark {
- public:
-  explicit LayoutBenchmark(const TestInfo& test_info);
-  ~LayoutBenchmark() override {}
-
-  void Experiment() override;
-  void AnalyzeTraceEvent(
-      const scoped_refptr<trace_event::EventParser::ScopedEvent>& event)
-      override;
-  std::vector<trace_event::Benchmark::Result> CompileResults() override;
-
- private:
-  typedef base::hash_map<std::string, double> IntermediateResultsMap;
-  typedef base::hash_map<std::string, std::vector<double> >
-      FinalResultsSampleMap;
-
-  void OnIterationComplete();
-  static std::string FilePathToBenchmarkName(const base::FilePath& filepath);
-
-  TestInfo test_info_;
-
-  // During each iteration, we accumulate intermediate results by *adding*
-  // task times together.  Only when the iteration is complete do we consider
-  // our result a sample.
-  IntermediateResultsMap intermediate_results_;
-
-  // A list of accumulated intermediate results.  The vectors in this map are
-  // pushed to at the end of each iteration.
-  FinalResultsSampleMap layout_samples_;
-  FinalResultsSampleMap renderer_samples_;
-
-  // Is this our first iteration?
-  bool first_iteration_;
-
-  // We setup the renderer benchmark runner first so that we can gain access
-  // to the resource provider and so that we can also benchmark the rendering
-  // of the layed out web pages.
-  RendererBenchmarkRunner renderer_benchmark_runner_;
-};
-
-LayoutBenchmark::LayoutBenchmark(const TestInfo& test_info)
-    : test_info_(test_info), first_iteration_(true) {
-  // Setup the name's benchmark based on the test entry file path.
-  set_name(FilePathToBenchmarkName(test_info_.base_file_path));
-  set_num_iterations(10, base::Bind(&LayoutBenchmark::OnIterationComplete,
-                                    base::Unretained(this)));
-
-  // Define the set of event names that we would like to watch for by
-  // initializing their map entries to the default constructed values (e.g.
-  // std::vector<double>()).
-  layout_samples_[layout::kBenchmarkStatLayout];
-  layout_samples_[dom::kBenchmarkStatUpdateSelectorTree];
-  layout_samples_[dom::kBenchmarkStatUpdateComputedStyles];
-  layout_samples_[layout::kBenchmarkStatBoxGeneration];
-  layout_samples_[layout::kBenchmarkStatUpdateCrossReferences];
-  layout_samples_[layout::kBenchmarkStatUpdateUsedSizes];
-  layout_samples_[layout::kBenchmarkStatRenderAndAnimate];
-  renderer_samples_["AnimateNode::Apply()"];
-  renderer_samples_["VisitRenderTree"];
-  renderer_samples_["Skia Flush"];
-}
-
-std::string LayoutBenchmark::FilePathToBenchmarkName(
-    const base::FilePath& filepath) {
-  std::vector<base::FilePath::StringType> components;
-  filepath.GetComponents(&components);
-
-  // Don't include the "benchmarks" directory as part of the benchmark name.
-  components.erase(components.begin());
-
-  return base::JoinString(components, "/");
-}
-
-void LayoutBenchmark::Experiment() {
-  base::MessageLoop message_loop(base::MessageLoop::TYPE_DEFAULT);
-
-  // We prepare a layout_results variable where we place the results from each
-  // layout.  We will then use the final layout_results as input to the renderer
-  // benchmark.
-  base::Optional<browser::WebModule::LayoutResults> layout_results;
-
-  ViewportSize viewport_size =
-      test_info_.viewport_size ? *test_info_.viewport_size : kViewSize;
-
-  // Set up a WebModule, load the URL and trigger layout to get layout benchmark
-  // results.
-  layout_results =
-      SnapshotURL(test_info_.url, viewport_size,
-                  renderer_benchmark_runner_.GetResourceProvider(),
-                  dom::ScreenshotManager::ProvideScreenshotFunctionCallback());
-
-  // Finally run the renderer benchmarks to acquire performance data on
-  // rendering.
-  renderer_benchmark_runner_.RunBenchmarks(*layout_results, 60);
-}
-
-namespace {
-
-// Return true if the event has an ancestor with the specified named event.
-bool HasAncestorEvent(
-    const scoped_refptr<trace_event::EventParser::ScopedEvent>& event,
-    const std::string& ancestor_event_string) {
-  scoped_refptr<trace_event::EventParser::ScopedEvent> ancestor_event =
-      event->parent();
-  while (ancestor_event) {
-    if (ancestor_event->name() == ancestor_event_string) {
-      break;
-    }
-    ancestor_event = ancestor_event->parent();
-  }
-
-  return ancestor_event.get() != NULL;
-}
-
-}  // namespace
-
-void LayoutBenchmark::AnalyzeTraceEvent(
-    const scoped_refptr<trace_event::EventParser::ScopedEvent>& event) {
-  // Check if this is a layout sample.
-  if (event->name() == layout::kBenchmarkStatNonMeasuredLayout) {
-    // If this is a layout that should not be measured, use that as a signal
-    // that we are measuring partial layout, and clear out all measured data
-    // so far and start fresh for the eventual measured layout.
-    intermediate_results_.clear();
-    return;
-  }
-
-  FinalResultsSampleMap::iterator found_layout =
-      layout_samples_.find(event->name());
-  if (found_layout != layout_samples_.end() &&
-      !HasAncestorEvent(event, layout::kBenchmarkStatNonMeasuredLayout)) {
-    if (!base::ContainsKey(intermediate_results_, found_layout->first)) {
-      intermediate_results_[found_layout->first] = 0;
-    }
-
-    double event_duration = event->in_scope_duration()->InSecondsF();
-    intermediate_results_[found_layout->first] += event_duration;
-
-    if (event->name() != layout::kBenchmarkStatLayout &&
-        !HasAncestorEvent(event, layout::kBenchmarkStatLayout)) {
-      // If the event (which we have specifically requested to include in
-      // the benchmark results) does not fall under the scope of the official
-      // layout event, artificially increase the tracked layout time to include
-      // it.  This way events can occur at any time, and the scoped layout
-      // event still gives us a way to measure unaccounted for time that we
-      // know is devoted to layout.
-      intermediate_results_[layout::kBenchmarkStatLayout] += event_duration;
-    }
-  }
-
-  FinalResultsSampleMap::iterator found_renderer =
-      renderer_samples_.find(event->name());
-  if (found_renderer != renderer_samples_.end()) {
-    found_renderer->second.push_back(event->in_scope_duration()->InSecondsF());
-  }
-}
-
-void LayoutBenchmark::OnIterationComplete() {
-  // Skip recording the results of the first iteration, since a few things
-  // may have been lazily initialized and we'd like to avoid recording that.
-  if (first_iteration_) {
-    for (FinalResultsSampleMap::iterator iter = renderer_samples_.begin();
-         iter != renderer_samples_.end(); ++iter) {
-      iter->second.clear();
-    }
-  } else {
-    // Save our finalized intermediate results into our finalized results, and
-    // then clear out our intermediate results for the next iteration.
-    for (FinalResultsSampleMap::iterator iter = layout_samples_.begin();
-         iter != layout_samples_.end(); ++iter) {
-      if (base::ContainsKey(intermediate_results_, iter->first)) {
-        iter->second.push_back(intermediate_results_[iter->first]);
-      }
-    }
-  }
-
-  first_iteration_ = false;
-  intermediate_results_.clear();
-}
-
-std::vector<trace_event::Benchmark::Result> LayoutBenchmark::CompileResults() {
-  std::vector<trace_event::Benchmark::Result> results;
-  for (FinalResultsSampleMap::iterator iter = layout_samples_.begin();
-       iter != layout_samples_.end(); ++iter) {
-    results.push_back(trace_event::Benchmark::Result(
-        iter->first + " in-scope duration in seconds", iter->second));
-  }
-  for (FinalResultsSampleMap::iterator iter = renderer_samples_.begin();
-       iter != renderer_samples_.end(); ++iter) {
-    results.push_back(trace_event::Benchmark::Result(
-        iter->first + " in-scope duration in seconds", iter->second));
-  }
-  return results;
-}
-
-class LayoutBenchmarkCreator : public trace_event::BenchmarkCreator {
- public:
-  std::vector<CreateBenchmarkFunction> GetBenchmarkCreators() override {
-    std::vector<CreateBenchmarkFunction> benchmarks;
-
-    std::vector<TestInfo> benchmark_infos = EnumerateLayoutTests("benchmarks");
-    for (std::vector<TestInfo>::const_iterator iter = benchmark_infos.begin();
-         iter != benchmark_infos.end(); ++iter) {
-      benchmarks.push_back(
-          base::Bind(&LayoutBenchmarkCreator::CreateLayoutBenchmark, *iter));
-    }
-
-    return benchmarks;
-  }
-
- private:
-  static std::unique_ptr<trace_event::Benchmark> CreateLayoutBenchmark(
-      const TestInfo& test_info) {
-    return std::unique_ptr<trace_event::Benchmark>(
-        new LayoutBenchmark(test_info));
-  }
-};
-LayoutBenchmarkCreator g_benchmark_creator;
-
-}  // namespace layout_tests
-}  // namespace cobalt
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/i/-9-kyTW8ZkZNDHQJ6FgpwQ/1.jpg b/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/i/-9-kyTW8ZkZNDHQJ6FgpwQ/1.jpg
deleted file mode 100644
index fc5fc1c..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/i/-9-kyTW8ZkZNDHQJ6FgpwQ/1.jpg
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/i/4R8DWoMoI7CAwX8_LjQHig/1.jpg b/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/i/4R8DWoMoI7CAwX8_LjQHig/1.jpg
deleted file mode 100644
index 0b1dda7..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/i/4R8DWoMoI7CAwX8_LjQHig/1.jpg
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/i/Egdi0XIXXZ-qJOFPf4JSKw/1.jpg b/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/i/Egdi0XIXXZ-qJOFPf4JSKw/1.jpg
deleted file mode 100644
index 5abfe0e..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/i/Egdi0XIXXZ-qJOFPf4JSKw/1.jpg
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/i/F0pVplsI8R5kcAqgtoRqoA/1.jpg b/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/i/F0pVplsI8R5kcAqgtoRqoA/1.jpg
deleted file mode 100644
index 429bdae..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/i/F0pVplsI8R5kcAqgtoRqoA/1.jpg
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/i/OpNcN46UbXVtpKMrmU4Abg/1.jpg b/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/i/OpNcN46UbXVtpKMrmU4Abg/1.jpg
deleted file mode 100644
index 861caa9..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/i/OpNcN46UbXVtpKMrmU4Abg/1.jpg
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/i/YfdidRxbB8Qhf0Nx7ioOYw/1.jpg b/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/i/YfdidRxbB8Qhf0Nx7ioOYw/1.jpg
deleted file mode 100644
index 75357d6..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/i/YfdidRxbB8Qhf0Nx7ioOYw/1.jpg
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/i/i-g4cjqGV7jvU8aeSuj0jQ/1.jpg b/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/i/i-g4cjqGV7jvU8aeSuj0jQ/1.jpg
deleted file mode 100644
index e8b0b20..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/i/i-g4cjqGV7jvU8aeSuj0jQ/1.jpg
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/i/xAgnFbkxldX6YUEvdcNjnA/1.jpg b/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/i/xAgnFbkxldX6YUEvdcNjnA/1.jpg
deleted file mode 100644
index 40edb65..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/i/xAgnFbkxldX6YUEvdcNjnA/1.jpg
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/vi/0vEKItRNIb0/hqdefault.jpg b/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/vi/0vEKItRNIb0/hqdefault.jpg
deleted file mode 100644
index e686f50..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/vi/0vEKItRNIb0/hqdefault.jpg
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/vi/1dXVzBU5p-Q/hqdefault.jpg b/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/vi/1dXVzBU5p-Q/hqdefault.jpg
deleted file mode 100644
index e686f50..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/vi/1dXVzBU5p-Q/hqdefault.jpg
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/vi/2A07xMhKC6g/hqdefault.jpg b/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/vi/2A07xMhKC6g/hqdefault.jpg
deleted file mode 100644
index e686f50..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/vi/2A07xMhKC6g/hqdefault.jpg
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/vi/59_zMJRhFM0/hqdefault.jpg b/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/vi/59_zMJRhFM0/hqdefault.jpg
deleted file mode 100644
index e686f50..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/vi/59_zMJRhFM0/hqdefault.jpg
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/vi/8VstEBbwhnc/hqdefault.jpg b/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/vi/8VstEBbwhnc/hqdefault.jpg
deleted file mode 100644
index e686f50..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/vi/8VstEBbwhnc/hqdefault.jpg
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/vi/D-YPnDvTCmI/hqdefault.jpg b/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/vi/D-YPnDvTCmI/hqdefault.jpg
deleted file mode 100644
index e686f50..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/vi/D-YPnDvTCmI/hqdefault.jpg
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/vi/F50yjSws9gQ/hqdefault.jpg b/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/vi/F50yjSws9gQ/hqdefault.jpg
deleted file mode 100644
index e686f50..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/vi/F50yjSws9gQ/hqdefault.jpg
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/vi/GwzBLYGRj6c/hqdefault.jpg b/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/vi/GwzBLYGRj6c/hqdefault.jpg
deleted file mode 100644
index e686f50..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/vi/GwzBLYGRj6c/hqdefault.jpg
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/vi/LZoilVdo7Hw/hqdefault.jpg b/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/vi/LZoilVdo7Hw/hqdefault.jpg
deleted file mode 100644
index e686f50..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/vi/LZoilVdo7Hw/hqdefault.jpg
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/vi/M9WlASe5ThU/hqdefault.jpg b/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/vi/M9WlASe5ThU/hqdefault.jpg
deleted file mode 100644
index e686f50..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/vi/M9WlASe5ThU/hqdefault.jpg
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/vi/MODTYlzxY9U/hqdefault.jpg b/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/vi/MODTYlzxY9U/hqdefault.jpg
deleted file mode 100644
index e686f50..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/vi/MODTYlzxY9U/hqdefault.jpg
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/vi/RL7grUEo960/hqdefault.jpg b/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/vi/RL7grUEo960/hqdefault.jpg
deleted file mode 100644
index e686f50..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/vi/RL7grUEo960/hqdefault.jpg
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/vi/XilhAJZ2qxs/hqdefault.jpg b/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/vi/XilhAJZ2qxs/hqdefault.jpg
deleted file mode 100644
index e686f50..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/vi/XilhAJZ2qxs/hqdefault.jpg
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/vi/Z31LDqbhN8U/hqdefault.jpg b/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/vi/Z31LDqbhN8U/hqdefault.jpg
deleted file mode 100644
index e686f50..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/vi/Z31LDqbhN8U/hqdefault.jpg
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/vi/_TWbD3MKfMI/hqdefault.jpg b/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/vi/_TWbD3MKfMI/hqdefault.jpg
deleted file mode 100644
index e686f50..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/vi/_TWbD3MKfMI/hqdefault.jpg
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/vi/eOOyxSMI0aE/hqdefault.jpg b/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/vi/eOOyxSMI0aE/hqdefault.jpg
deleted file mode 100644
index e686f50..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/vi/eOOyxSMI0aE/hqdefault.jpg
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/vi/q14aPbvbvl8/hqdefault.jpg b/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/vi/q14aPbvbvl8/hqdefault.jpg
deleted file mode 100644
index e686f50..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/vi/q14aPbvbvl8/hqdefault.jpg
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/vi/qkKRkfZYhlE/hqdefault.jpg b/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/vi/qkKRkfZYhlE/hqdefault.jpg
deleted file mode 100644
index e686f50..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/vi/qkKRkfZYhlE/hqdefault.jpg
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/vi/qrZcKwcVwk8/hqdefault.jpg b/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/vi/qrZcKwcVwk8/hqdefault.jpg
deleted file mode 100644
index e686f50..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/vi/qrZcKwcVwk8/hqdefault.jpg
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/vi/rs-Ou-gjReQ/hqdefault.jpg b/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/vi/rs-Ou-gjReQ/hqdefault.jpg
deleted file mode 100644
index e686f50..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/vi/rs-Ou-gjReQ/hqdefault.jpg
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/vi/rtzlT78OEks/hqdefault.jpg b/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/vi/rtzlT78OEks/hqdefault.jpg
deleted file mode 100644
index e686f50..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/vi/rtzlT78OEks/hqdefault.jpg
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/vi/spC883rn6zk/hqdefault.jpg b/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/vi/spC883rn6zk/hqdefault.jpg
deleted file mode 100644
index e686f50..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/vi/spC883rn6zk/hqdefault.jpg
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/vi/tCehxI5a1y0/hqdefault.jpg b/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/vi/tCehxI5a1y0/hqdefault.jpg
deleted file mode 100644
index e686f50..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/vi/tCehxI5a1y0/hqdefault.jpg
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/vi/tnfPNYpi8rc/hqdefault.jpg b/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/vi/tnfPNYpi8rc/hqdefault.jpg
deleted file mode 100644
index e686f50..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/vi/tnfPNYpi8rc/hqdefault.jpg
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/vi/vvFHyFW_jFc/hqdefault.jpg b/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/vi/vvFHyFW_jFc/hqdefault.jpg
deleted file mode 100644
index e686f50..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/vi/vvFHyFW_jFc/hqdefault.jpg
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/vi/wNRUzu4fTgw/hqdefault.jpg b/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/vi/wNRUzu4fTgw/hqdefault.jpg
deleted file mode 100644
index e686f50..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/vi/wNRUzu4fTgw/hqdefault.jpg
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/vi/x5ZxRObLLzE/hqdefault.jpg b/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/vi/x5ZxRObLLzE/hqdefault.jpg
deleted file mode 100644
index e686f50..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/vi/x5ZxRObLLzE/hqdefault.jpg
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/vi/zzmrTdAtEu4/hqdefault.jpg b/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/vi/zzmrTdAtEu4/hqdefault.jpg
deleted file mode 100644
index e686f50..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/i.ytimg.com/vi/zzmrTdAtEu4/hqdefault.jpg
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/layout_tests.txt b/src/cobalt/layout_tests/testdata/benchmarks/layout_tests.txt
deleted file mode 100644
index c86c38e..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/layout_tests.txt
+++ /dev/null
@@ -1 +0,0 @@
-youtube-2015-q3-initial-layout:1920x1080
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/fonts/CutiveMono-Regular.woff b/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/fonts/CutiveMono-Regular.woff
deleted file mode 100644
index 6ab1ca1..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/fonts/CutiveMono-Regular.woff
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/fonts/DancingScript-Regular.woff b/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/fonts/DancingScript-Regular.woff
deleted file mode 100644
index 71b2e76..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/fonts/DancingScript-Regular.woff
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/fonts/Handlee-Regular.woff b/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/fonts/Handlee-Regular.woff
deleted file mode 100644
index c8f2418..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/fonts/Handlee-Regular.woff
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/fonts/MarcellusSC-Regular.woff b/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/fonts/MarcellusSC-Regular.woff
deleted file mode 100644
index 1740d4f..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/fonts/MarcellusSC-Regular.woff
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/fonts/PTM55FT.woff b/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/fonts/PTM55FT.woff
deleted file mode 100644
index e7e96d1..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/fonts/PTM55FT.woff
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/fonts/PT_Sans-Caption-Web-Regular.woff b/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/fonts/PT_Sans-Caption-Web-Regular.woff
deleted file mode 100644
index c0e6a2f..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/fonts/PT_Sans-Caption-Web-Regular.woff
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/fonts/PT_Serif-Caption-Web-Regular.woff b/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/fonts/PT_Serif-Caption-Web-Regular.woff
deleted file mode 100644
index f5599f7..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/fonts/PT_Serif-Caption-Web-Regular.woff
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/app-prod.css b/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/app-prod.css
deleted file mode 100644
index c78c202..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/app-prod.css
+++ /dev/null
@@ -1 +0,0 @@
-.icon-cast_off:before{content:"\00e675"}.icon-cast_on:before{content:"\00e676"}.icon-mr_meh_android:before{content:"\00e677"}.icon-settings-signin-android:before{content:"\00e678"}.icon-settings-signout-android:before{content:"\00e679"}.icon-roku-back:before{content:"\00e674"}.icon-hats-happy:before{content:"\00e66f"}.icon-hats-neutral:before{content:"\00e670"}.icon-hats-sad:before{content:"\00e671"}.icon-hats-very-happy:before{content:"\00e672"}.icon-hats-very-sad:before{content:"\00e673"}.icon-search-keyboard:before{content:"\00e66e"}.icon-multiaudio:before{content:"\00e62d"}.icon-settings-check:before{content:"\00e66d"}.icon-settings-uncheck:before{content:"\00e659"}.icon-popular:before{content:"\00e66c"}.icon-airplane:before{content:"\00e600"}.icon-back:before{content:"\00e601"}.icon-check:before{content:"\00e602"}.icon-chevron-single:before{content:"\00e603"}.icon-delete:before{content:"\00e604"}.icon-desktop-arrowkeys:before{content:"\00e605"}.icon-desktop-delete:before{content:"\00e606"}.icon-desktop-esc:before{content:"\00e607"}.icon-desktop-g:before{content:"\00e608"}.icon-desktop-s:before{content:"\00e609"}.icon-dislike:before{content:"\00e60a"}.icon-double-chevron-right:before{content:"\00e60b"}.icon-edit:before{content:"\00e60c"}.icon-education:before{content:"\00e60d"}.icon-ellipsis:before{content:"\00e60e"}.icon-entertainment:before{content:"\00e60f"}.icon-exit:before{content:"\00e610"}.icon-film:before{content:"\00e611"}.icon-flag:before{content:"\00e612"}.icon-gaming:before{content:"\00e613"}.icon-guide-history:before{content:"\00e614"}.icon-guide-my-subs:before{content:"\00e615"}.icon-guide-purchases:before{content:"\00e616"}.icon-guide-social:before{content:"\00e617"}.icon-guide-what-to-watch:before{content:"\00e618"}.icon-home:before{content:"\00e619"}.icon-hourglass:before{content:"\00e61a"}.icon-key-delete:before{content:"\00e61b"}.icon-key-globe:before{content:"\00e61c"}.icon-key-space-sm:before{content:"\00e61d"}.icon-key-space:before{content:"\00e61e"}.icon-like:before{content:"\00e61f"}.icon-lips:before{content:"\00e620"}.icon-logo-lozenge:before{content:"\00e621"}.icon-lol:before{content:"\00e622"}.icon-lozenge:before{content:"\00e623"}.icon-mix:before{content:"\00e624"}.icon-music:before{content:"\00e625"}.icon-news:before{content:"\00e626"}.icon-people:before{content:"\00e627"}.icon-pets:before{content:"\00e628"}.icon-player-3d:before{content:"\00e629"}.icon-player-annotations:before{content:"\00e62a"}.icon-player-closedcaptions:before{content:"\00e62b"}.icon-player-ff:before{content:"\00e62c"}.icon-player-HD-circle:before{content:"\00e651"}.icon-player-HD:before{content:"\00e62e"}.icon-player-info:before{content:"\00e62f"}.icon-player-instantreplay:before{content:"\00e630"}.icon-player-less:before{content:"\00e631"}.icon-player-more:before{content:"\00e632"}.icon-player-mute:before{content:"\00e633"}.icon-player-next:before{content:"\00e634"}.icon-player-pause:before{content:"\00e635"}.icon-player-play:before{content:"\00e636"}.icon-player-prev:before{content:"\00e637"}.icon-player-replay:before{content:"\00e638"}.icon-player-rew:before{content:"\00e639"}.icon-player-settings:before{content:"\00e63a"}.icon-player-share:before{content:"\00e63b"}.icon-player-size-fullscreen:before{content:"\00e63c"}.icon-player-size-medium:before{content:"\00e63d"}.icon-player-size-minimize:before{content:"\00e63e"}.icon-player-stop:before{content:"\00e63f"}.icon-player-subtitles:before{content:"\00e640"}.icon-player-volume-45:before{content:"\00e641"}.icon-player-volume-48:before{content:"\00e642"}.icon-playlist:before{content:"\00e643"}.icon-playstation-circle:before{content:"\00e644"}.icon-playstation-square:before{content:"\00e645"}.icon-playstation-triangle:before{content:"\00e646"}.icon-playstation-x:before{content:"\00e647"}.icon-privacy-link:before{content:"\00e648"}.icon-privacy-locked:before{content:"\00e649"}.icon-privacy-public:before{content:"\00e64a"}.icon-related:before{content:"\00e64b"}.icon-remoteque:before{content:"\00e64c"}.icon-reward:before{content:"\00e64d"}.icon-rocket:before{content:"\00e64e"}.icon-search-clear:before{content:"\00e64f"}.icon-search:before{content:"\00e650"}.icon-settings-clear-cookies:before{content:"\00e652"}.icon-settings-clear-history:before{content:"\00e653"}.icon-settings-feedback:before{content:"\00e654"}.icon-settings-help:before{content:"\00e655"}.icon-settings-pair:before{content:"\00e656"}.icon-settings-phone:before{content:"\00e657"}.icon-settings-term:before{content:"\00e658"}.icon-speechbubble:before{content:"\00e65a"}.icon-sports:before{content:"\00e65b"}.icon-star:before{content:"\00e65c"}.icon-trash:before{content:"\00e65d"}.icon-trends:before{content:"\00e65e"}.icon-tv-dpad:before{content:"\00e65f"}.icon-upload-arrow:before{content:"\00e660"}.icon-upload:before{content:"\00e661"}.icon-watch-later:before{content:"\00e662"}.icon-wii-1:before{content:"\00e663"}.icon-wii-2:before{content:"\00e664"}.icon-wii-A:before{content:"\00e665"}.icon-wii-B:before{content:"\00e666"}.icon-wii-minus:before{content:"\00e667"}.icon-wii-plus:before{content:"\00e668"}.icon-wii-x:before{content:"\00e669"}.icon-wii-y:before{content:"\00e66a"}.icon-youtube-logo:before{content:"\00e66b"}.icon-youtube-unlimited-logo:before{content:"\00e67a"}@font-face{font-family:'Cutive Mono';src:url('/s/tv/fonts/CutiveMono-Regular.woff') format('woff')}@font-face{font-family:'PT Mono';src:url('/s/tv/fonts/PTM55FT.woff') format('woff')}@font-face{font-family:'PT Serif Caption';src:url('/s/tv/fonts/PT_Serif-Caption-Web-Regular.woff') format('woff')}@font-face{font-family:'PT Sans Caption';src:url('/s/tv/fonts/PT_Sans-Caption-Web-Regular.woff') format('woff')}@font-face{font-family:'Handlee';src:url('/s/tv/fonts/Handlee-Regular.woff') format('woff')}@font-face{font-family:'Dancing Script';src:url('/s/tv/fonts/DancingScript-Regular.woff') format('woff')}@font-face{font-family:'Marcellus SC';src:url('/s/tv/fonts/MarcellusSC-Regular.woff') format('woff')}body,html{font-size:100%;height:100%;margin:auto;overflow:hidden;padding:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}input{font:inherit;margin:0;padding:0}body{background-color:#1c1a1a}p,ul,li{border:0;margin:0;outline:none;padding:0}ul{list-style:none}.focused,:focus{outline:0 solid}.hidden{display:none!important}.invisible{visibility:hidden}ul.list li{display:inline}ul.list.vertical li{display:block}.device-plugin{height:0;margin:0;position:absolute;visibility:hidden;width:0}#loader{}#leanback{height:100%}#app-markup{background-size:100% 100%;height:100%}#background{background-size:100% 100%;bottom:0;left:0;position:absolute;overflow:hidden;right:0;top:0}.limited-memory.sets-ui #app-markup{background-color:#283337}#app-markup.watch-state{background-color:#000!important}.wiiu #app-markup.watch-state{background-image:none!important}#playstation-buttons{display:none;position:absolute}#spinner{position:absolute;top:17.17em;width:100%}.browse-state .loading-indicator{display:none}.browse-state .fallback-loading-indicator{display:block}.opera #spinner{top:20em}.loading-indicator{height:5.33em;margin:0 auto;position:relative;width:5.33em}.dot{background-color:#cbcbcb;border-radius:50%;height:1.17em;position:absolute;width:1.17em}@-webkit-keyframes fade1{0%,100%{opacity:0}50%{opacity:1}}@-webkit-keyframes fade2{0%,100%{opacity:.25}37.5%{opacity:1}87.5%{opacity:0}}@-webkit-keyframes fade3{0%,100%{opacity:.5}25%{opacity:1}75%{opacity:0}}@-webkit-keyframes fade4{0%,100%{opacity:.75}12.5%{opacity:1}62.5%{opacity:0}}@-webkit-keyframes fade5{0%,100%{opacity:1}50%{opacity:0}}@-webkit-keyframes fade6{0%,100%{opacity:.75}37.5%{opacity:0}87.5%{opacity:1}}@-webkit-keyframes fade7{0%,100%{opacity:.5}25%{opacity:0}75%{opacity:1}}@-webkit-keyframes fade8{0%,100%{opacity:.25}12.5%{opacity:0}62.5%{opacity:1}}@-o-keyframes fade1{0%,100%{opacity:0}50%{opacity:1}}@-o-keyframes fade2{0%,100%{opacity:.25}37.5%{opacity:1}87.5%{opacity:0}}@-o-keyframes fade3{0%,100%{opacity:.5}25%{opacity:1}75%{opacity:0}}@-o-keyframes fade4{0%,100%{opacity:.75}12.5%{opacity:1}62.5%{opacity:0}}@-o-keyframes fade5{0%,100%{opacity:1}50%{opacity:0}}@-o-keyframes fade6{0%,100%{opacity:.75}37.5%{opacity:0}87.5%{opacity:1}}@-o-keyframes fade7{0%,100%{opacity:.5}25%{opacity:0}75%{opacity:1}}@-o-keyframes fade8{0%,100%{opacity:.25}12.5%{opacity:0}62.5%{opacity:1}}@keyframes fade1{0%,100%{opacity:0}50%{opacity:1}}@keyframes fade2{0%,100%{opacity:.25}37.5%{opacity:1}87.5%{opacity:0}}@keyframes fade3{0%,100%{opacity:.5}25%{opacity:1}75%{opacity:0}}@keyframes fade4{0%,100%{opacity:.75}12.5%{opacity:1}62.5%{opacity:0}}@keyframes fade5{0%,100%{opacity:1}50%{opacity:0}}@keyframes fade6{0%,100%{opacity:.75}37.5%{opacity:0}87.5%{opacity:1}}@keyframes fade7{0%,100%{opacity:.5}25%{opacity:0}75%{opacity:1}}@keyframes fade8{0%,100%{opacity:.25}12.5%{opacity:0}62.5%{opacity:1}}#dot1{-o-animation:fade8 .72s infinite ease;-webkit-animation:fade8 .72s infinite ease;animation:fade8 .72s infinite ease;left:0;top:2.09em}#dot2{-o-animation:fade7 .72s infinite ease;-webkit-animation:fade7 .72s infinite ease;animation:fade7 .72s infinite ease;left:.61em;top:.61em}#dot3{-o-animation:fade6 .72s infinite ease;-webkit-animation:fade6 .72s infinite ease;animation:fade6 .72s infinite ease;left:2.09em;top:0}#dot4{-o-animation:fade5 .72s infinite ease;-webkit-animation:fade5 .72s infinite ease;animation:fade5 .72s infinite ease;right:.61em;top:.61em}#dot5{-o-animation:fade4 .72s infinite ease;-webkit-animation:fade4 .72s infinite ease;animation:fade4 .72s infinite ease;right:0;top:2.09em}#dot6{-o-animation:fade3 .72s infinite ease;-webkit-animation:fade3 .72s infinite ease;animation:fade3 .72s infinite ease;bottom:.61em;right:.61em}#dot7{-o-animation:fade2 .72s infinite ease;-webkit-animation:fade2 .72s infinite ease;animation:fade2 .72s infinite ease;bottom:0;left:2.09em}#dot8{-o-animation:fade1 .72s infinite ease;-webkit-animation:fade1 .72s infinite ease;animation:fade1 .72s infinite ease;bottom:.61em;left:.61em}.spinner.transitions .dot{-o-animation:initial!important;-webkit-animation:initial!important;animation:initial!important;background:url(img/circle.png) no-repeat center;background-size:100%}.spinner.transitions.spin .loading-indicator{transition:transform 25s linear;transform:rotate(-7200deg)}.transitions #dot1{opacity:1}.transitions #dot2{opacity:0.875}.transitions #dot3{opacity:0.75}.transitions #dot4{opacity:0.625}.transitions #dot5{opacity:0.5}.transitions #dot6{opacity:0.375}.transitions #dot7{opacity:0.25}.transitions #dot8{opacity:0.125}.fallback-loading-indicator{color:#f1f1f1;display:none;font-size:1.8em;margin:2px auto 0 auto;text-align:center}.scrollbar{background-color:rgba(255,255,255,.1);height:100%;position:absolute;top:0;width:.1em}.scrollbar .handle{background-color:#f1f1f1;position:absolute;width:.1em}.application-message{color:#f1f1f1;font-size:1.8em;position:absolute;text-align:center;text-shadow:#000 .04em .04em;top:50%;width:100%}.debug-watermark{background-color:rgba(235,49,3,0.7);color:#0e0202;display:none;font-size:100%;left:0;padding:1em;position:absolute;bottom:0;width:70%}.debug-watermark.visible{display:block}.debug-console{background:rgba(0,0,0,.9);color:#fff;height:95%;overflow:scroll;padding:1em;position:absolute;right:0;top:0;width:40em;z-index:1}#player-controls .button,#player-controls .toggle-button{font-family:'youtube-icons';speak:none}.fps{position:absolute;right:0;bottom:0;text-align:center;padding-top:0.3em;width:5em;height:1.7em;background-color:#0f0;z-index:100}#html5-player-messages{display:none}#button-list>.icon-player-more:before{content:"\00e632"}.icon-player-play.toggle-selected:before{content:"\00e635"}#loader{z-index:1000}.sliding-highlighter,.pivot-sliding-highlighter{background:white;box-shadow:0 0 60px rgba(153,153,153,.3);display:none;height:26em;position:absolute;width:24em}#settings-items .sliding-highlighter{height:26.2em;width:24.2em}.horizontal-list.focused .sliding-highlighter,.video-uploads.focused .sliding-highlighter,#settings-items.focused .sliding-highlighter{display:block}.video-uploads .sliding-highlighter{height:20em;width:18em}.carousel .item:hover{background-color:#5a5a5a;cursor:pointer}.feed-title.preview{color:#f1f1f1;font-size:1.3em;height:1.3em;opacity:.7;padding-bottom:.6em;padding-left:1.9em}.feed-title .unread-count{background-color:rgba(187,0,0,.9);font-size:.6em;margin-left:.5em;padding:.05em .3em;position:relative;top:-0.265em}.prev-feed{height:3.6em;left:4%;position:absolute;top:5%}.next-feed{height:2em;left:4%;position:absolute;top:84%}.tile{background-color:#000;color:#666;height:26em;list-style:none;overflow:hidden;position:absolute;width:24em}.tile-focus-target{height:0;width:0}.tile-top{background-color:#000;height:50%;width:100%}.channel-top{height:62%;margin:5.25% 16%;width:68%}.channel-top .video-thumb,.tile-top .video-thumb{background-color:#252525;background-position:center;background-repeat:no-repeat;background-size:100%;height:100%}.browse-header-avatar.preloaded,.tile-top .video-thumb.preloaded{background:no-repeat center;background-color:#252525;background-image:url('img/icon-playbutton.png');background-size:auto}.auto-play-tile{overflow:visible}.post-play-title{font-size:1.4em;overflow:hidden;position:absolute;text-overflow:ellipsis;text-shadow:#000 .08em .08em;top:-1.8em;width:15.5em}.auto-play-tile .video-tile{top:0}.auto-play-tile .default-title,.auto-play-tile .next-up-title{color:#cccccc}.post-play-countdown{display:none}.countdown-active .post-play-countdown{color:#fff;display:block;font-size:5em;position:relative;text-align:center;text-shadow:#000 .06em .06em;top:14%}.playlist-tile.focused,.playlist-tile.focused:hover,.auto-play-tile.focused .video-tile,.auto-play-tile.focused:hover .video-tile,.recent-search-tile.focused,.recent-search-tile.focused:hover,.video-tile.focused,.video-tile.focused:hover{background-color:#f1f1f1}.item .overlay{display:none}.playlist-tile .overlay,.video-tile .overlay{background:#000;display:block;height:53%;margin-left:56%;margin-top:-57.5%;opacity:.8;width:45%}.playlist-tile.focused .overlay,.video-tile.focused .overlay{color:#f1f1f1}.playlist-tile .overlay strong{font-size:1.75em;font-weight:normal}.playlist-tile .overlay .count,.video-tile .overlay .count{font-size:1.5em;line-height:1.2em;padding-top:1.7em;text-align:center}.playlist-tile .overlay .icon,.video-tile .overlay .icon{font-family:'youtube-icons';font-size:3em;height:50%;overflow:hidden;padding:.2em;text-align:center}.tile-bottom{height:50%;padding:.25em 0 0 1em;width:23em}.channel-bottom{height:25%;margin-top:2.65em;width:100%}.channel-bottom .title,.tile-bottom .title{color:#999;font-size:1.7em;height:2.45em;line-height:1.25em;margin:.6em .6em 0 0;overflow:hidden;text-align:left;white-space:normal}.channel-bottom .title{height:1.2em;margin:0;padding:0 .6em;text-align:center;text-overflow:ellipsis;white-space:nowrap}.tile.selected.focused .tile-bottom{color:#222}.tile.selected.focused .channel-bottom .details,.tile.selected.focused .tile-bottom .details{color:#999}.tile.selected.focused .channel-bottom .title,.tile.selected.focused .tile-bottom .title{color:#444}.channel-tile .channel-top .decoration{margin-top:-19%;text-align:right;width:97%}.video-tile .tile-top .decoration{margin-top:-2em;text-align:right;width:97.3%}.channel-top .badge,.tile-top .badge,.tile-top .duration{background:rgba(0,0,0,.7);border-radius:0.1em;color:#fff;display:inline-block;font-size:1.4em;padding:0em .1em}.tile-top .badge,.tile-top .duration{text-transform:uppercase}.tile-top .live-badge{background-color:rgba(230,33,23,.8);border:0;color:#fff}.playlist-tile:hover,.video-tile:hover{background-color:#222}.channel-tile .details,.playlist-tile .details,.recent-search-tile .details,.video-tile .details{color:#999;font-size:1.3em;font-weight:300;height:40%;overflow:hidden;padding:0;white-space:normal;word-break:break-all}.channel-tile .details{text-align:center}.playlist-tile .details,.recent-search-tile .details,.video-tile .details{margin:.7em 0em 0em}.custom-playlist-image-tile .tile-top .video-thumb{background-position-x:0%;background-repeat:no-repeat;background-size:56.25%}.playlist-tile.focused .details,.recent-search-tile.focused .details,.video-tile.focused .details{color:#666}.playlist-tile .details .by,.recent-search-tile .results,.video-tile .details .by{height:1.4em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.playlist-tile .details .views,.video-tile .details .views{display:inline-block;padding-right:1.5em}.playlist-tile .details .views:empty,.video-tile .details .views:empty{display:none}.action-tile{border:2px rgba(255,255,255,0.1) solid;color:#fff;height:26em;overflow:visible}.action-tile.focused,.channel-tile.focused{background-color:#fff;color:#222}.action-tile .content{height:26em;white-space:normal}.video-tile .live-start-time{display:inline-block;vertical-align:middle}.tile-top .count-overlay{background:rgba(0,0,0,0.75);font-size:1.4em;height:100%;position:absolute;right:0;text-align:center;top:0;width:30%}.tile-top .count-overlay .video-count{display:block;font-size:2.2em;font-weight:bold;line-height:.8em;margin-top:1.6em}.action-tile .title{font-size:2.4em;height:24%;overflow:hidden;padding-top:0.5em;text-align:center;text-overflow:ellipsis;text-transform:uppercase;white-space:normal}.action-tile .long-title{font-size:2em;text-align:center;white-space:normal}.action-tile .description,.action-tile .remote-pair-text,.action-tile .remote-reset-help{color:#fff;font-size:1.4em;opacity:0;padding:0.5em;text-align:center;white-space:normal}.action-tile.focused .description,.action-tile.focused .remote-pair-text,.action-tile.focused .remote-reset-help,.action-tile.focused .sign-out-username{opacity:1}.action-tile .sign-out-username{font-size:1.7em;margin:1em auto;overflow:hidden;text-align:center;text-overflow:ellipsis;white-space:nowrap;width:80%}.action-tile .remote-count{font-size:.4em;position:absolute;top:40%;width:100%}.action-tile .remote-standing{display:inline-block;font-size:1.4em;margin:.2em auto;padding:.8em .4em .1em}.action-tile .remote-reset-help{height:2.7em}.action-tile .status{font-size:2em;text-align:center}.row-playing{display:none}.action-tile .large-action-icon{font-family:'youtube-icons';font-size:11em;margin-top:0;text-align:center;width:100%}.action-tile .sign-out-user-icon{background-size:cover;border-radius:20em;height:9em;margin:0 auto;width:9em}.action-tile .search-tile .description{font-size:1.4em;margin-top:2em;position:inherit;text-align:center}.large-action-icon.icon-guide-history{font-size:8em;margin-top:0.2em}.toggle-tile .icon{margin-top:0}.toggle-tile .content .title{height:12%;white-space:nowrap}.toggle-tile .label{font-size:1.8em;max-height:13%;text-align:center;width:100%}.selected .icon-search,.tile.selected .icon-search-clear{color:#222}.exp-densityBrowse .horizontal-list>.content{font-size:100%}.exp-densityBrowse .horizontal-list .no-content-message{display:none}.exp-densityBrowse .horizontal-list .pivot-sliding-highlighter{background:transparent;border:.5em #fff solid;box-shadow:.083em .083em .75em .167em #000 inset;height:7.5em;margin-left:-.4em;margin-top:-.4em;pointer-events:none;width:13.8em}.exp-densityBrowse .horizontal-list.focused .pivot-sliding-highlighter{display:block}.exp-densityBrowse .horizontal-list.focused.channel-selected .pivot-sliding-highlighter{border-radius:50%;height:7.5em;-moz-transform:translateX(3.2em);-o-transform:translateX(3.2em);-webkit-transform:translateX(3.2em);transform:translateX(3.2em);width:7.5em}.exp-densityBrowse .browse-sets .action-tile,.exp-densityBrowse .horizontal-list .channel-tile,.exp-densityBrowse .horizontal-list .video-tile{height:14em;width:14em}.exp-densityBrowse .shelf .horizontal-list .channel-tile,.exp-densityBrowse .shelf .horizontal-list .video-tile,.exp-densityBrowse .shelf .horizontal-list .channel-tile.selected,.exp-densityBrowse .shelf .horizontal-list .video-tile.selected{opacity:.5}.exp-densityBrowse .shelf.selected .horizontal-list .channel-tile,.exp-densityBrowse .shelf.selected .horizontal-list .video-tile,.exp-densityBrowse .horizontal-list .channel-tile,.exp-densityBrowse .horizontal-list .video-tile{opacity:.7}.exp-densityBrowse .shelf.selected .horizontal-list .channel-tile.selected,.exp-densityBrowse .shelf.selected .horizontal-list .video-tile.selected,.exp-densityBrowse .horizontal-list .channel-tile.selected,.exp-densityBrowse .horizontal-list .video-tile.selected,.exp-densityBrowse .horizontal-list .auto-play-tile.selected .video-tile,.limited-animation .exp-densityBrowse .shelf .horizontal-list .channel-tile,.limited-animation .exp-densityBrowse .shelf .horizontal-list .video-tile,.limited-animation .exp-densityBrowse .shelf .horizontal-list .channel-tile.selected,.limited-animation .exp-densityBrowse .shelf .horizontal-list .video-tile.selected,.limited-animation .exp-densityBrowse .shelf.selected .horizontal-list .channel-tile,.limited-animation .exp-densityBrowse .shelf.selected .horizontal-list .video-tile,.limited-animation .exp-densityBrowse .horizontal-list .channel-tile,.limited-animation .exp-densityBrowse .horizontal-list .video-tile{opacity:1}.exp-densityBrowse .horizontal-list .tile-top{height:7.83em}.exp-densityBrowse .channel-top .badge,.exp-densityBrowse .tile-top .badge{font-size:1em;padding:.2em}.exp-densityBrowse .horizontal-list .tile-bottom,.exp-densityBrowse .horizontal-list .channel-bottom{height:4.25em;margin-top:.83em;padding:0;width:100%}.exp-densityBrowse .shelf .horizontal-list .tile-bottom,.exp-densityBrowse .shelf .horizontal-list .channel-bottom{display:none}.exp-densityBrowse .shelf.selected .horizontal-list .tile-bottom,.exp-densityBrowse .shelf.selected .horizontal-list .channel-bottom{display:block}.exp-densityBrowse .browse-sets .action-tile .description,.exp-densityBrowse .horizontal-list .tile-bottom .title,.exp-densityBrowse .horizontal-list .channel-bottom .title{font-size:1.16em;height:initial;line-height:1.25em;margin:0;max-height:2.5em;text-overflow:ellipsis}.exp-densityBrowse .horizontal-list .channel-bottom .title{white-space:normal}.exp-densityBrowse .horizontal-list .video-tile .details{color:#cdcdcd;font-size:.83em;height:initial;margin:.4em 0}.exp-densityBrowse .horizontal-list .video-tile .tile-top .decoration{display:none;line-height:1em;margin-top:0;-moz-transform:translateY(-100%);-o-transform:translateY(-100%);-webkit-transform:translateY(-100%);transform:translateY(-100%);width:100%}.exp-densityBrowse #search .tile-top .decoration,.exp-densityBrowse #post-play-list .tile-top .decoration,.exp-densityBrowse .shelf.selected .horizontal-list .tile-top .decoration{display:block}.exp-densityBrowse .horizontal-list .video-tile .tile-top .badge{border-radius:0}.exp-densityBrowse .horizontal-list .video-tile .tile-top .duration{background:rgba(0,0,0,.5);font-size:1em;font-weight:bold;padding:.5em}.exp-densityBrowse .horizontal-list .channel-bottom .details{display:none}.exp-densityBrowse .horizontal-list .video-tile .details .views,.exp-densityBrowse .horizontal-list .video-tile .details .age{display:inline-block}.exp-densityBrowse .horizontal-list .video-tile .details .views{padding-right:.5em}.sets-ui .exp-densityBrowse .horizontal-list .channel-tile.selected .channel-bottom>.title,.sets-ui .exp-densityBrowse .horizontal-list .auto-play-tile.selected .tile-bottom>.title,.sets-ui .exp-densityBrowse .horizontal-list .video-tile.selected .tile-bottom>.title{color:#fff}.exp-densityBrowse .video-tile .overlay{height:7.83em;margin-left:60%;margin-top:-7.83em;width:40%}.exp-densityBrowse .video-tile .overlay .count{font-size:1em;line-height:1em;padding-top:1.5em}.exp-densityBrowse .video-tile .overlay .icon{font-size:2em;padding:0}.exp-densityBrowse .horizontal-list .channel-top{height:7.83em;margin:0 auto;width:7.83em}.exp-densityBrowse .horizontal-list .channel-top .video-thumb{border-radius:50%}.exp-densityBrowse .browse-sets .shelf>.title{font-size:1em;margin-bottom:.9em;margin-top:0}.exp-densityBrowse .browse-sets .shelf>.title .main{font-size:1.5em}.exp-densityBrowse .browse-sets .shelf>.title .annotation{font-size:1em}.exp-densityBrowse .browse-sets .shelf>.title{color:#cdcdcd}.engaged.exp-densityBrowse .channel-tile .voice-command,.engaged.exp-densityBrowse .video-tile .voice-command{font-size:1em;line-height:1em;margin-top:-2em}.limited-animation.sets-ui .exp-densityBrowse .video-tile:hover:not(.focused),.limited-animation.sets-ui .exp-densityBrowse .channel-tile:hover:not(.focused),.sets-ui .exp-densityBrowse .carousel .item:hover,.sets-ui .exp-densityBrowse .carousel .auto-play-tile:hover,.sets-ui .exp-densityBrowse .carousel .channel-tile:hover{background-color:inherit!important;opacity:1}.exp-densityBrowse .browse-sets .action-tile{border:none}.exp-densityBrowse .browse-sets .action-tile .content{height:7.83em;margin-bottom:.83em}.exp-densityBrowse .browse-sets .action-tile .title{display:none}.exp-densityBrowse .browse-sets .action-tile .large-action-icon{background-color:#232323;color:#fff;font-size:6em;height:1.3em;line-height:1.3em}.exp-densityBrowse .browse-sets .action-tile .description{opacity:inherit;padding:0}.exp-densityBrowse .auto-play-tile{height:14em;width:14em}.exp-densityBrowse .post-play-countdown{top:7%}.limited-animation .exp-densityBrowse .browse-content .list{margin-left:-7.5em;width:inherit}.limited-animation .exp-densityBrowse .browse-content .shelf>.title{margin-left:7.5em}.limited-animation .exp-densityBrowse .browse-content .list .shelf:nth-child(1){margin-bottom:6.5em}.limited-animation .exp-densityBrowse .browse-content .list .shelf{margin-bottom:-.1em}.limited-animation.sets-ui .exp-densityBrowse .channel-tile:not(.focused),.limited-animation.sets-ui .exp-densityBrowse .video-tile:not(.focused){background-color:inherit}.limited-animation .exp-densityBrowse .channel-tile.focused,.limited-animation .exp-densityBrowse .video-tile.focused{background-color:inherit}.limited-animation .exp-densityBrowse .video-tile{margin-right:.5em}.limited-animation .exp-densityBrowse .video-tile .overlay{height:7.03em;margin-left:8em;margin-top:-7.43em;width:5.6em}.limited-animation .exp-densityBrowse .video-tile .tile-top{background:inherit;height:7.03em;padding:.4em;width:13.2em}.limited-animation .exp-densityBrowse .channel-tile{margin-right:.5em}.limited-animation .exp-densityBrowse .channel-tile .channel-top{height:6.83em;padding:.4em;width:6.83em}.limited-animation .exp-densityBrowse .video-tile.focused .tile-top{background:#fff}.limited-animation .exp-densityBrowse .channel-tile.focused .channel-top{background:#fff;border-radius:50%}.limited-animation .exp-densityBrowse .search .placeholder-tile,.limited-animation .exp-densityBrowse .browse-content .list .placeholder-tile{height:14em;margin-right:.5em;width:14em}#dialog.remote-reset-dialog>.title{font-size:3em;padding-bottom:.5em}#dialog.remote-reset-dialog .buttons{bottom:.5em;position:absolute}#dialog.remote-reset-dialog{left:0;position:absolute;white-space:normal}.remote-reset-dialog #dialog-view{color:#aaa;font-size:1.8em;padding-top:0.5em}.connection-instructions{padding-top:.5em;font-size:2em}.text-dialog .connection-instructions{font-size:1.3em}.browse-sets-state .login-dialog{margin-top:5em}#search .pairing .pairing-content>*,#dialog .pairing .pairing-content>*{display:inline-block}#search .pairing .pairing-content .step2,#dialog .pairing .pairing-content .step2{display:block}#search .dial-upsell .connection-steps .no-dial-connect-step1,#search .manual-connect .connection-steps .with-dial-connect-step1{display:none}.connection-instructions .step1,.connection-instructions .step2,.qr-code .scan,.pairing .connected-header,.remote-reset-dialog .connected-header{color:#aaa;font-size:.7em}.connection-instructions .pair-url,.connection-instructions .pair-code{color:#f1f1f1}.connection-instructions .step2{margin-top:2em}.pairing .qr-code,.pairing .connected-list{display:inline-block;margin-left:1em;vertical-align:top}.pairing .dial-upsell{color:#aaa;display:inline-block;font-size:95%;overflow:hidden;padding-left:2em;padding-top:0.8em;text-align:initial;vertical-align:top;white-space:normal;width:16em}.pairing .cast-icon{background:url(img/cast_disconnected_blue.png) no-repeat center;background-size:contain;display:inline-block;height:1em;margin:.1em .3em;vertical-align:middle;width:1em}.pairing .qr-code .scan{margin-bottom:.5em;white-space:normal;width:5em}.pairing .qr-code img{height:5.1em;width:5.1em}.pairing .icon-settings-pair,.login-dialog .icon-settings-pair{background-image:none;display:inline-block;font:5em 'youtube-icons';height:1em;margin-top:.1em;width:1.4em}.remote-reset-dialog .connected-header,.pairing .connected-header{margin-bottom:.3em}.remote-reset-dialog .devices,.pairing .devices{list-style:none;font-size:1.5em;color:#f1f1f1}.remote-reset-dialog .devices>div,.pairing .devices>div{display:block;height:1.5em;line-height:1.5em;overflow:hidden;padding-left:1.5em;text-overflow:ellipsis;white-space:nowrap;width:11.5em}.remote-reset-dialog .devices .connected:before{background-position:0 100%}.remote-reset-dialog .devices .connected{color:#f1f1f1}#search{bottom:0;color:#f1f1f1;left:0;overflow:hidden;position:absolute;right:0;text-align:center;top:0}.watch-state #search{left:0}#search>.controls{left:8em;margin-right:18em;position:absolute;right:2.5em;text-align:left;top:2.5em}#search-text-box{background-color:#e1e1e1;font-size:1.6em;height:100%;margin:0 auto;overflow:hidden;position:relative}#search-text-box>.icon-search{display:none}#search-input{background:none;border:none;color:#111;height:100%;padding-left:.5em;width:100%}#search-input:disabled{color:#111}#search-query{color:#111;height:100%;overflow:hidden;padding-left:.5em;padding-top:.3em;position:absolute;text-overflow:ellipsis;white-space:pre;width:95%}#search-suggestions{font-size:1.2em;position:relative;display:inline-block;left:0;width:100%}.search-state #spinner{top:26em}#suggest-list{overflow:hidden}#suggest-list>div{border-radius:1px;color:#e1e1e1;display:inline-block;padding:.2em .5em}#search-keyboard{font-size:1em;text-align:left;width:65%}#search-suggestions,#search-keyboard,#letter-suggest{white-space:nowrap}#search-keyboard,#letter-suggest{z-index:1}#keyboard-grid{display:inline-block;font-size:1.6em;margin:0 auto;overflow:hidden;text-align:left}#keyboard-grid,#keyboard-spacebar{color:#a3a3a3}#keyboard-grid .button{border-radius:1px;display:inline-block;margin:.3em .6em .3em 0;padding:0 .1em;text-align:center;text-transform:uppercase;width:1em;vertical-align:top}#keyboard-grid .list{text-align:left;text-shadow:none}#search-keyboard #keyboard-grid .icon-key-delete.button{font-family:'youtube-icons';font-size:.7em;line-height:1.2em;margin-left:2.25em;padding:.25em;width:2.25em}#keyboard-spacebar{border-radius:1px;display:inline-block;font-family:'youtube-icons';font-size:1.44em;margin:.1em 7em 0 2.1em;padding:.1em;text-align:left}#search-keyboard #keyboard-grid .clear-query-tile.button{font-size:.7em;margin-left:2.25em;padding:.25em;text-transform:uppercase;width:auto}#keyboard-grid .icon-key-globe{font-family:'youtube-icons';margin:.25em 0 .25em 1.6em;padding:.1em;width:1.2em}#search-keyboard .button.focused{background-color:#e1e1e1;color:#212121}#letter-suggest{font-size:1.6em;position:fixed;text-align:center;width:1.2em}.letter-suggest-visible #keyboard-grid .list.selected .button.selected:not(.focused){background-color:rgba(153,153,153,.85);color:#000;text-shadow:none}#keyboard-grid .button.numbers-toggle-tile{font-size:.75em;padding:.22em;margin:.25em 0 0 2.1em;width:auto}#search .pairing .icon-settings-pair{display:none}#search .search-message{display:inline-block;margin-left:2em;margin-top:1.5em;vertical-align:top;white-space:normal;width:50%}#search .search-pairing{background-color:rgba(0,0,0,.3);bottom:0;display:inline-block;left:5em;padding:2em 2.5em 4em;position:absolute;text-align:left;text-shadow:-1px 1px 2px black;width:100%}.limited-animation #search .search-pairing{background-color:#000}#search .search-pairing .search-img{background-image:url(img/pair_promo.png);background-size:cover;display:inline-block;height:11em;width:11em}#search .search-pairing .title{font-size:1.9em}#search .search-pairing .connection-instructions{font-size:1.6em}#search .search-pairing .dial-upsell-content{color:#aaa}#search .search-pairing .manual-connect-content .connection-steps{padding:0}#search .search-pairing .manual-connect-content .connection-steps .pair-code,#search .search-pairing .manual-connect-content .connection-steps .pair-url{display:block}#search .search-pairing .manual-connect-content .connection-steps .step2{margin-top:1em}#search .search-pairing .manual-connect-content .connection-steps .label,#search .search-pairing .manual-connect .dial-upsell-content,#search .search-pairing .dial-upsell .manual-connect-content{display:none}#search .pairing .no-dial-connect-step1,#search .pairing .no-dial-connect-step2{display:inline-block}#search .pairing .no-dial-connect-step2{margin-left:2em}#search .pairing .connection-steps{text-align:left}#search .pairing .connected-list,#search .pairing .qr-code-wrapper{display:none}#search.hide-input .search-pairing{margin-top:8em}#letter-suggest div{background-color:rgba(153,153,153,.85);color:rgba(0,0,0,.8);height:1.4em;text-shadow:none}#letter-suggest .focused{color:#f1f1f1}#transliteration-container{display:none}#search-keyboard.transliterable #transliteration-container{display:block}#transliteration .list{font-size:2em;height:1.2em;margin:0 auto;overflow:hidden;padding:.2em 0;text-align:center;width:77%}#transliteration .list>div{display:inline;padding:0 .5em;position:relative}#suggest-list>div.focused,#transliteration .list .focused{background-color:#fefefe;color:#212121}#transliteration .button:hover{background-color:rgba(153,153,153,.4)}#transliteration .button:hover,#search-keyboard .button:hover{cursor:pointer}#search .horizontal-list>.content{text-align:left}.limited-animation.sets-ui #search .horizontal-list>.content{margin-left:-21.8em;width:126em}#search .horizontal-list{left:7.5em;height:inherit;position:absolute;right:0;top:38%;-o-transform:translateY(7.5em);-webkit-transform:translateY(7.5em);transform:translateY(7.5em);-o-transition:opacity .25s -o-transform .25s;-webkit-transition:opacity .25s,-webkit-transform .25s;transition:opacity .25s,transform .25s;width:initial}#search.input-collapsed .horizontal-list{-o-transform:none!important;-webkit-transform:none!important;transform:none!important}#search-keyboard{-o-transition:opacity .25s -o-transform .25s;-webkit-transition:opacity .25s,-webkit-transform .25s;transition:opacity .25s,transform .25s;transform-origin:top}#search-keyboard.hidden{display:block!important;opacity:0;-o-transform:scaleY(.5);-webkit-transform:scaleY(.5);transform:scaleY(.5)}#search #search-text-entry{height:2.4em}#search #search-suggestions,#search #search-text-entry{background-color:rgba(0,0,0,0);padding-top:.25em;-o-transform-origin:top;-webkit-transform-origin:top;transform-origin:top;-o-transition:opacity .25s -o-transform .25s;-webkit-transition:opacity .25s,-webkit-transform .25s;transition:opacity .25s,transform .25s}.limited-animation #search .horizontal-list,.limited-animation #search #search-suggestions,.limited-animation #search #search-text-entry,.limited-animation #search #search-keyboard{-o-transition:none;-webkit-transition:none;transition:none}#search-text-entry{padding-bottom:.4em}#search-text-entry,#text-box-background{height:3em}#keyboard-icon{display:none;font-family:'youtube-icons';font-size:1.2em;padding-bottom:.4em;text-align:center;vertical-align:bottom;width:2em}.input-collapsed #keyboard-icon{display:inline-block}#search-text-entry .suggestions-container{white-space:nowrap;overflow:hidden;height:2.4em}.exp-densityBrowse #search .horizontal-list{font-size:100%;height:14em;top:35%;-moz-transform:translateY(8em);-o-transform:translateY(8em);-webkit-transform:translateY(8em);transform:translateY(8em)}.limited-animation .exp-densityBrowse #search .horizontal-list .list{margin-left:-14em}.exp-densityBrowse #search .horizontal-list .video-tile{height:14em}.exp-densityBrowse #search .horizontal-list .video-tile .details .views,.exp-densityBrowse #search .horizontal-list .video-tile .details .age{display:inline-block}.exp-densityBrowse #search .horizontal-list .video-tile .details .views{padding-right:.5em}.limited-animation.sets-ui .exp-densityBrowse #search .horizontal-list>.content{margin-left:0;width:inherit}#player{height:100%;width:100%}.watch-state #watch{display:block}.wiiu #watch{background-color:#000;height:100%}#player-facade{height:100%;position:absolute;width:100%}#player-video{height:100%}#watch,.dialog-focused .standard-caption-window,#caption-window-99,.countdowntimer,.ytp-cued-icon,.ytp-fallback,.html5-context-menu,.html5-dialog-holder,.html5-endscreen,.html5-info-bar,.html5-modal-panel,.html5-player-chrome,.html5-show-video-info-template,.html5-storyboard,.html5-text-button,.html5-video-player .hid,.html5-ypc-module,.player-actions-container,.video-ad-status-bar,.video-annotations,.html5-watermark,.video-fallback-content,.video-ads,.title-card.hidden{display:none}.html5-video-player{overflow:visible}.html5-video-info-panel{background-color:rgba(0,0,0,.7);color:#f1f1f1;display:none;margin:20%;position:absolute;top:0;z-index:1}.html5-video-info-panel-close{display:none}.html5-video-info-panel-content>div>div{display:inline-block;font-weight:bold;padding:0 .5em;text-align:right;width:10em}.ad-video{width:100%;height:100%}.ad-showing .video-ads{display:block;overflow:hidden}.ad-interrupting.tag-pool-enabled .html5-main-video{position:absolute;left:-1px;top:-1px;overflow:hidden;width:1px!important;height:1px!important}.html5-video-player .video-stream{position:absolute;top:0;left:0;display:block}.opera .video-stream{height:720px;width:1280px}.advertisement-info,.skip-ad-button{position:absolute;top:9.5em}.advertisement-info{left:12.5%;text-align:left;width:30%;overflow:hidden}.advertisement-info-top{height:3em}.advertisement-avatar{width:3em;height:3em;display:inline-block;margin-right:.4em;background-position:right center;background-repeat:no-repeat;background-size:contain}.advertisement-info-details{display:inline-block;vertical-align:top;width:79%}.advertisement-title,.advertisement-advertiser,.third-party{color:#fff;text-shadow:2px 1px #000;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.third-party{position:absolute;bottom:0}.advertisement-title{font-size:1.4em;line-height:1em;height:1.1em}.advertisement-advertiser{font-size:1.1em;line-height:1.3em;height:1.4em}.advertisement-info .ad-badge{background-color:#e6bc27;padding:1px 5px;text-shadow:none;border-radius:.15em;font-size:.9em;text-transform:capitalize}.skip-ad-button{right:12.5%;border-radius:.15em;background-color:rgba(0,0,0,.4);padding:.6em}.canskip.mdx-skip.skip-ad-button{height:4.0em;width:18em}.canskip.mdx-skip .skip-button-text{font-size:1.1em;height:3em;left:2.0em;line-height:1.5em;position:absolute;top:.7em;width:75%}#transport-controls.ad-active .player-controls #button-list div.skip-ad-button .label,.skip-ad-button .label{font-size:1.1em;padding:0 1.4em;height:2.5em;line-height:2.5em;border-radius:.12em;cursor:pointer;background-color:rgba(0,0,0,0);color:#e1e1e1}.skip-ad-button.canskip.mdx-skip .label{height:3.7em}#transport-controls.ad-active .player-controls #button-list div.skip-ad-button.canskip:hover .label,.skip-ad-button.canskip:hover .label{background-color:#fff;color:#212121;border-radius:.12em}#transport-controls.ad-active .player-controls #button-list div.skip-ad-button.canskip.focused .label,.skip-ad-button.canskip.focused .label{background-color:#e1e1e1;color:#212121;border-radius:.12em}.skip-ad-button .skip-symbol{display:none;font-family:'youtube-icons'}.skip-ad-button.canskip .skip-symbol.icon-player-next{display:inline;font-size:1.3em;margin-left:.5em;vertical-align:middle}.exp-newMdxSkipButtonCast .canskip.mdx-skip.skip-ad-button .skip-symbol.icon-cast_on{display:inline;font-size:2.5em;position:absolute;right:.7em;text-align:right;top:.5em;width:25%}.exp-newMdxSkipButtonPair .canskip.mdx-skip.skip-ad-button .skip-symbol.icon-settings-pair{display:inline;font-size:4em;position:absolute;right:.4em;text-align:right;top:.3em;width:25%}.canskip.mdx-skip.skip-ad-button .skip-symbol.icon-player-next{display:none}#player-controls{text-align:center}#bottom-half{bottom:0;height:50%;position:absolute;width:100%}#transport-controls{background:-o-linear-gradient(rgba(0,0,0,0),rgba(0,0,0,1));background:-webkit-linear-gradient(rgba(0,0,0,0),rgba(0,0,0,1));background:linear-gradient(rgba(0,0,0,0),rgba(0,0,0,1));bottom:0;height:100%;position:absolute;-o-transition:-o-transform .25s,opacity .25s;-webkit-transition:-webkit-transform .25s,opacity .25s;transition:transform .25s,opacity .25s;width:100%}#transport-controls.hidden{display:block!important;opacity:0}.limited-animation #transport-controls.hidden{display:none!important}#transport-controls,#transport-controls.focused{display:block}.player-controls-widget{border:0;margin-top:8.4em}.fresh-transport-controls.seeking-forward .seeking-icon.icon-player-rew:before{content:"\00e62c"}.seeking-icon{bottom:3em;color:#fff;display:none;position:absolute;left:0;margin:0 auto;right:0}.seeking-icon span{display:none}.fresh-watch.watch-seeking .seeking-icon{display:block}.fresh-watch .title-card{background:-webkit-linear-gradient(top,rgba(0,0,0,.75),transparent);background:-o-linear-gradient(top,rgba(0,0,0,.75),transparent);background:linear-gradient(to bottom,rgba(0,0,0,.75),transparent);height:35.9%}#transport-controls.fresh-transport-controls{background:-webkit-linear-gradient(bottom,#000,transparent);background:-o-linear-gradient(bottom,#000,transparent);background:linear-gradient(to top,#000,transparent)}.fresh-watch .player-video-title{color:rgba(255,255,255,1);font-size:1.936em}.fresh-watch .player-meta .player-video-details{color:rgba(255,255,255,0.7);font-size:1.455em}.fresh-watch .pivot-shelf-list{margin-top:14.5em;padding-left:3.871em}#fresh-rows-container{border:0;color:#fff;margin-top:7.7em}.fresh-transport-controls .storyboards{position:absolute}.fresh-transport-controls .more-row,.fresh-transport-controls .main-row{margin-left:5%;width:95%}.fresh-transport-controls .button span,.fresh-transport-controls .toggle-button span{display:none;font-family:'roboto-regular';color:rgba(255,255,255,1)}.lang-case-sensitive .fresh-transport-controls span:first-letter{text-transform:uppercase}.fresh-transport-controls .button.disabled:hover,.fresh-transport-controls .toggle-button.disabled:hover{background-color:transparent}.fresh-transport-controls .button.disabled,.fresh-transport-controls .toggle-button.disabled{opacity:.45}.fresh-transport-controls .button.focused,.fresh-transport-controls .toggle-button.focused,.fresh-transport-controls .button:hover,.fresh-transport-controls .toggle-button:hover{background-color:rgba(255,255,255,.5);color:#fff}.fresh-transport-controls .button,.fresh-transport-controls .toggle-button,.seeking-icon{border-radius:4px;font-family:'youtube-icons';font-size:1.4em;height:1em;padding:.55em;speak:none;text-align:center;width:1em}.fresh-transport-controls .button,.fresh-transport-controls .toggle-button{color:rgba(255,255,255,.7);cursor:pointer;display:inline-block;position:relative}.fresh-transport-controls #transport-more-button:before{display:inline-block;left:19%;position:absolute;top:-9%}.fresh-transport-controls #transport-more-button{font-size:2em;height:.7em;margin-right:1.452em;padding:.385em;width:.7em}.fresh-transport-controls #transport-more-button span{color:#fff;display:inline-block;font-size:.485em;left:4.5em;position:absolute;text-align:left;top:1em;width:15em}.fresh-transport-controls #transport-more-button.top-row-active span{display:none}.fresh-transport-controls #transport-more-options-list{display:inline-block}.fresh-transport-controls .progress-bar{display:inline-block;height:3em;left:0;padding:0;position:relative;top:0;width:76.55%}.fresh-transport-controls.live-playback #play-pause-button{margin-right:1em}.fresh-transport-controls.live-playback .progress-bar{width:77.55%}.fresh-transport-controls.live-playback .live-indicator{display:inline-block;left:0;margin-left:1em;position:relative;top:0}.fresh-transport-controls #player-time-elapsed,.fresh-transport-controls .player-time-total{color:rgba(255,255,255,1);display:inline-block;font-size:1.3em;position:relative;text-align:center;top:0;width:8%}.fresh-transport-controls .more-row{margin-bottom:5px}.fresh-transport-controls .more-row .button,.fresh-transport-controls .more-row .toggle-button{margin-right:2.075em;vertical-align:top}.fresh-transport-controls .icon-like.toggle-selected,.fresh-transport-controls .icon-dislike.toggle-selected,.fresh-transport-controls .icon-player-closedcaptions.toggle-selected{color:#2793e6}.fresh-transport-controls .icon-logo-lozenge.toggle-selected{color:#f00}.fresh-transport-controls .more-row .button span,.fresh-transport-controls .more-row .toggle-button span{font-size:.692em;left:-3.45em;position:relative;top:-4.4em;width:8.3em}.fresh-transport-controls .more-row .button.focused span,.fresh-transport-controls .more-row .toggle-button.focused span,.fresh-transport-controls .more-row .button:hover span,.fresh-transport-controls .more-row .toggle-button:hover span{display:inline-block}.fresh-transport-controls .progress-bar .progress-bar-line div{height:.242em}.fresh-transport-controls .progress-bar .progress-bar-line .progress-bar-background{background-color:rgba(255,255,255,0.45)}.fresh-transport-controls .progress-bar .progress-bar-line .progress-bar-loaded{background-color:#fff}.fresh-transport-controls .progress-bar .progress-bar-line .progress-bar-played{background-color:#df2323}.fresh-transport-controls .progress-bar.ad-active .progress-bar-played{background-color:#e7bd00}.ypc-playback .fresh-transport-controls .progress-bar-line .progress-bar-played{background-color:#2793e6}.fresh-watch .ad-point-separator,.fresh-transport-controls .progress-bar .progress-bar-disc,.fresh-transport-controls.ad-active #player-time-elapsed,.fresh-transport-controls.ad-active .player-time-total{display:none}.fresh-transport-controls.ad-active .progress-bar{padding-left:1em;width:88%}.fresh-transport-controls.ad-active .more-row,.fresh-watch.watch-seeking .more-row{visibility:hidden}.fresh-watch .skip-ad-button,.fresh-watch .advertisement-info{top:6.7em}.fresh-watch .advertisement-info{left:5%}.fresh-watch .advertisement-info .advertisement-info-top{height:3.065em;position:relative}.fresh-watch .skip-ad-button{border-radius:4px;background-color:rgba(0,0,0,.5);padding:0;right:6%;z-index:1}.fresh-watch .skip-ad-button .label{color:#fff;font-size:1.13em;height:2.57em;line-height:2.57em;padding:0 1.3em}.fresh-watch .skip-ad-button .skip-symbol{font-size:1.1em}.fresh-watch .skip-ad-button.canskip:hover,.fresh-watch .skip-ad-button.canskip.focused{background-color:rgba(255,255,255,.5)}.fresh-watch .skip-ad-button.canskip:hover .label,.fresh-watch .skip-ad-button.canskip.focused .label{background:none;color:#fff}.fresh-watch .advertisement-info{color:#fff}.fresh-watch .advertisement-info .advertisement-advertiser{font-size:100%;height:1.4em;line-height:1.3em}.fresh-watch .advertisement-info .advertisement-advertiser>span{vertical-align:bottom}.fresh-watch .advertisement-info .advertisement-advertiser,.fresh-watch .advertisement-info .advertisement-title,.fresh-watch .advertisement-info .third-party{overflow:hidden;text-shadow:none;text-overflow:ellipsis;white-space:nowrap}.fresh-watch .advertisement-info .third-party{bottom:0;position:absolute;vertical-align:top;width:79%}.fresh-watch .advertisement-info .third-party>span{vertical-align:middle}.fresh-watch .advertisement-info .advertisement-title{font-size:1.35em;font-weight:bold;line-height:1em;height:1.1em;padding-bottom:1%;text-shadow:none}.fresh-watch .advertisement-info .ad-badge{background-color:#e7bd00;border-radius:.15em;font-size:.85em;font-weight:bold;padding:1px 7px;text-shadow:none;text-transform:capitalize}.fresh-watch .advertisement-info .remaining-duration,.fresh-watch .advertisement-info .ad-by{font-size:1.13em}.fresh-watch .advertisement-info .remaining-duration{padding:0 2%}.fresh-watch .advertisement-info .advertisement-avatar{background-repeat:no-repeat;background-size:contain;border-radius:50%;display:inline-block;height:3.065em;margin-right:1.4em;width:3.065em}.title-card{background:-o-linear-gradient(top,rgba(0,0,0,.9),rgba(0,0,0,.8),transparent);background:-webkit-linear-gradient(top,rgba(0,0,0,.9),rgba(0,0,0,.8),transparent);background:linear-gradient(to bottom,rgba(0,0,0,.9),rgba(0,0,0,.8),transparent);display:block;height:25%;position:absolute;top:0;-o-transition:-o-transform .25s,opacity .25s;-webkit-transition:-webkit-transform .25s,opacity .25s;transition:transform .25s,opacity .25s;width:100%}.ypc-playback .title-card{height:30%}.title-card.hidden{display:block!important;opacity:0}.limited-animation .title-card.hidden{display:none!important}.title-card .badges span{border:1px solid #ddd;border-radius:2px;display:inline-block;font-size:.9em;margin-left:1em;padding:0 .5em 0;text-transform:uppercase;vertical-align:middle}.title-card .badges span.live-badge{color:#fff;border:0;background-color:rgba(230,33,23,.8);margin-left:0}.selected-title .views{margin-top:-.6em}.player-meta{color:#f1f1f1;margin:2.6em 0 0 3.5em;white-space:nowrap;width:90%}.player-meta .user-details{position:absolute;right:5%}.player-meta .user-details>div{display:inline-block;vertical-align:top}.player-meta .user-details .avatar{background-size:cover;height:4em;width:4em}.player-meta .user-details .message{font-size:80%;margin:.2em 1em 0 1.1em;max-width:50%;overflow:hidden;text-overflow:ellipsis}.player-meta .player-video-text{display:inline-block;padding-left:1.5em;width:90%}.player-meta .player-video-details{font-size:1.5em;white-space:initial}.player-meta .player-video-details>div{margin:.2em 1em 0 0;vertical-align:top}.player-meta .player-video-details .username{max-width:45%;overflow:hidden;text-overflow:ellipsis}.player-meta .player-video-details .set-context{max-width:45%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.player-meta .player-video-details .set-context,.player-meta .player-video-details .set-context-position,.player-meta .player-video-details .uploaded-date,.player-meta .player-video-details .view-count,.player-meta .player-video-details .badges,.player-meta .player-video-details .username{display:inline-block}.player-video-avatar{background-size:contain;border-radius:50%;display:inline-block;height:5.5em;vertical-align:top;width:5.5em}.player-video-title{font-size:2.4em;margin:-.1em 0 0 0;overflow:hidden;text-overflow:ellipsis}.quality-status{display:none;padding-top:.2em}.title-tray-inflated .quality-status{display:inline-block}.quality-status-hd-badge{background:#f1f1f1;border-radius:2px;color:#414141;font-size:.6em;font-weight:bold;padding:.125em .5em}.ypc-preview{display:none}.ypc-playback .ypc-preview{display:block}.player-controls #button-list .focused,.player-controls #button-list div:hover{-webkit-border-radius:.05em;color:#000}.player-controls #button-list .focused{background-color:#fff}.player-controls #button-list div:hover{background-color:#9d9495}.player-controls #button-list .button,.player-controls #button-list .toggle-button{display:inline-block;font-size:1.4em;height:1.3em;margin:1em 1em;padding-bottom:.4em;padding-top:.8em;top:0;width:2.3em}.player-controls #button-list .button span,.player-controls #button-list .toggle-button span{font-family:'roboto-regular';font-size:.7em;left:-10%;margin:.5em 0 0;width:120%;height:120%}.player-controls #button-list .button.spacer{visibility:hidden;cursor:auto}#transport-controls.focused .player-controls #button-list div{color:#fff}#transport-controls.focused .player-controls #button-list .focused{color:#222}.player-controls #button-list div{color:#aaa;cursor:pointer;vertical-align:middle}#transport-controls.ad-active .player-controls #button-list div.disabled{visibility:hidden}#transport-controls.ad-active .player-controls #button-list div.skip-ad-button.disabled{visibility:visible;opacity:1}.player-controls #button-list div.disabled:hover{background-color:transparent;color:#fff}.player-controls #button-list div.focused{opacity:1}.player-controls #button-list div.disabled{opacity:.2}.player-controls #button-list .icon-player-closedcaptions.toggle-selected,.player-controls #button-list .icon-like.toggle-selected,.player-controls #button-list .icon-dislike.toggle-selected{color:#2793e6!important}.player-controls #button-list .icon-logo-lozenge.toggle-selected{color:#f00!important}#transport-controls .player-controls #button-list div.icon-player-more,#transport-controls .player-controls #button-list div.icon-player-less{color:#858585}.player-controls .toggle-button span,.player-controls .button span,.player-controls .toggle-button.disabled span,.player-controls .button.disabled span{display:none;margin-top:1em;color:#fff;font-size:.75em;padding:0;position:relative;text-align:center;top:1em;width:100%}.lang-case-sensitive .player-controls .button span:first-letter,.lang-case-sensitive .player-controls .toggle-button span:first-letter{text-transform:uppercase}#transport-controls.focused,.player-controls .toggle-button.focused span,.player-controls div:hover.toggle-button span,.player-controls .button.focused span,.player-controls div:hover.button span{display:block}.player-seekbar{position:relative}.progress-bar{height:4em;left:11%;position:absolute;top:-9em;width:75%;padding:0 1.5%}.progress-bar .progress-bar-playhead,.progress-bar .progress-bar-line{top:2.5em}.progress-bar .progress-bar-line{position:relative;width:100%}.progress-bar .progress-bar-line div{height:2px;position:absolute}.progress-bar .progress-bar-playhead{height:2px;position:relative;width:100%}.progress-bar .progress-bar-line .progress-bar-background{width:100%;background-color:#5b5b5b}.progress-bar .progress-bar-line .progress-bar-played{background-color:#e32c29}.progress-bar .progress-bar-line .progress-bar-loaded{background-color:#999}.ypc-playback .progress-bar-line .progress-bar-played{background-color:#2793e6}.progress-bar .progress-bar-disc{background-color:#ccc;border-radius:50%;height:.6em;margin:-.25em 0 0 -.25em;position:absolute;width:.6em}.progress-bar .cue-range-markers{height:100%;position:absolute;width:100%}.progress-bar-disc{pointer-events:none}.ad-active .progress-bar .cue-range-markers{visibility:hidden}.progress-bar .cue-range-markers .cue-range-marker{background-color:rgba(255,255,255,0);height:2px;margin:0 0 0 -.1em;position:absolute;width:.2em}.progress-bar .cue-range-markers .ad-marker{background-color:#e6bc27}.progress-bar.ad-active .progress-bar-played{background-color:#d6cb23}#player-time-elapsed,.player-time-total,.live-indicator{color:rgba(255,255,255,.75);font-size:1.2em;position:absolute;top:-6em;width:12%}.limited-graphics #player-time-elapsed,.limited-graphics .player-time-total{color:#fff}#player-time-elapsed{left:0;text-align:right}.player-time-total,.live-indicator{right:0;text-align:left}#transport-controls.ad-active #player-time-elapsed,#transport-controls.ad-active .player-time-total{display:none}.live-indicator{display:none;font-size:1.3em;position:absolute;top:-5.6em;width:11.7%}.live-playback .live-indicator{display:block}.live-playback .player-time-total,.live-playback .elapsed-time,.fresh-transport-controls.live-playback .player-time-total,.fresh-transport-controls.live-playback #player-time-elapsed{display:none}.live-playback .progress-bar-disc{background-color:#e62117}#watch .loading-indicator{top:30%}#transport-spacer:hover{background:none}.html5-video-controls{position:absolute;width:100%;height:0;bottom:2em;-moz-transition:all .6s ease;-ms-transition:all .6s ease;-o-transition:all .6s ease;-webkit-transition:all .6s ease}.ytp-player-content{position:absolute;bottom:0;height:0;left:0;right:0}.html5-video-content{position:absolute}.caption-window{position:absolute;pointer-events:none}.standard-caption-window{position:absolute;white-space:normal;width:80%}.caption-window-transform{display:inline-block;line-height:1.32em}.html5-video-player .captions-text{position:relative}.html5-video-player .caption-row{padding-bottom:5px;padding-top:5px}.anchor-point-1{-moz-transform:translate(-50%,0);-ms-transform:translate(-50%,0);-o-transform:translate(-50%,0);-webkit-transform:translate(-50%,0);transform:translate(-50%,0)}.anchor-point-2{-moz-transform:translate(-100%,0);-ms-transform:translate(-100%,0);-o-transform:translate(-100%,0);-webkit-transform:translate(-100%,0);transform:translate(-100%,0)}.anchor-point-3{-moz-transform:translate(0,-50%);-ms-transform:translate(0,-50%);-o-transform:translate(0,-50%);-webkit-transform:translate(0,-50%);transform:translate(0,-50%)}.anchor-point-4{-moz-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);-o-transform:translate(-50%,-50%);-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.anchor-point-5{-moz-transform:translate(-100%,-50%);-ms-transform:translate(-100%,-50%);-o-transform:translate(-100%,-50%);-webkit-transform:translate(-100%,-50%);transform:translate(-100%,-50%)}.anchor-point-6{-moz-transform:translate(0,-100%);-ms-transform:translate(0,-100%);-o-transform:translate(0,-100%);-webkit-transform:translate(0,-100%);transform:translate(0,-100%)}.anchor-point-7{-moz-transform:translate(-50%,-100%);-ms-transform:translate(-50%,-100%);-o-transform:translate(-50%,-100%);-webkit-transform:translate(-50%,-100%);transform:translate(-50%,-100%)}.anchor-point-8{-moz-transform:translate(-100%,-100%);-ms-transform:translate(-100%,-100%);-o-transform:translate(-100%,-100%);-webkit-transform:translate(-100%,-100%);transform:translate(-100%,-100%)}.anchor-point-0,.anchor-point-1,.anchor-point-2{padding-top:3em}.watch.transport-showing .anchor-point-0,.watch.transport-showing .anchor-point-1,.watch.transport-showing .anchor-point-2{padding-top:9em}.anchor-point-0,.anchor-point-3,.anchor-point-6{padding-left:3em}.anchor-point-2,.anchor-point-5,.anchor-point-8{padding-right:3em}.anchor-point-6,.anchor-point-7,.anchor-point-8,.eureka .watch.transport-showing .anchor-point-6,.eureka .watch.transport-showing .anchor-point-7,.eureka .watch.transport-showing .anchor-point-8{padding-bottom:3em}.watch.transport-showing .anchor-point-6,.watch.transport-showing .anchor-point-7,.watch.transport-showing .anchor-point-8{padding-bottom:15em}.watch.pivot-focused .anchor-point-6{padding-bottom:17.5em}.watch.pivot-focused .anchor-point-7,.watch.pivot-focused .anchor-point-8{padding-bottom:16em}.watch .ytp-fresca-module,.search-focused .watch.message .ytp-fresca-module{display:none}.watch.message .ytp-fresca-module{background-color:rgba(0,0,0,.5);color:#fff;display:block;font-size:2em;padding-left:1.5em;position:absolute;top:30%;width:100%}.watch.message .ytp-fresca-show-countdown{padding-bottom:1.3em}.ytp-fresca-countdown{font-size:1.4em}.pivot-shelf-list{margin-top:12.5em;padding-left:7em;-o-transition:-o-transform .25s,opacity .25s;-webkit-transition:-webkit-transform .25s,opacity .25s;transition:transform .25s,opacity .25s;-webkit-transform:translateZ(0);-o-transform:translateY(10em);-webkit-transform:translateY(10em);transform:translateY(10em)}.pivot-shelf-list.hidden{display:block!important;opacity:0}.limited-animation .pivot-shelf-list.hidden,.forced-limited-animation.pivot-shelf-list.hidden{display:none!important}.pivot-shelf-list.animate-in{-o-transform:translateY(0);-webkit-transform:translateY(0);transform:translateY(0)}.pivot-shelf-list>.carousel{opacity:.5;-o-transition:opacity .25s;-webkit-transition:opacity .25s;transition:opacity .25s}.limited-memory .pivot-shelf-list{opacity:1}.pivot-shelf-list .title-container{color:#fff}.pivot-shelf .tile-title .author,.pivot-shelf .tile-title .view{color:#e1e1e1}.pivot-shelf-list.focused,.post-play .pivot-shelf-list{background:-o-linear-gradient(rgba(0,0,0,0),rgba(0,0,0,1));background:-webkit-linear-gradient(rgba(0,0,0,0),rgba(0,0,0,1));background:linear-gradient(rgba(0,0,0,0),rgba(0,0,0,1));height:17.5em;margin-top:2.5em;padding-top:10em;-o-transform:translateY(-7.5em);-webkit-transform:translateY(-7.5em);transform:translateY(-7.5em)}.post-play .pivot-shelf{opacity:.5}.post-play .pivot-shelf-list.focused .pivot-shelf,.pivot-shelf-list.focused>.carousel{opacity:1}.pivot-shelf-list .focused.list{height:0}.pivot-shelf-list .no-content-message{display:none}.pivot-shelf-list.forced-limited-animation,.limited-animation .pivot-shelf-list,.limited-animation .pivot-shelf-list>.carousel{-o-transition:none;-webkit-transition:none;transition:none}.pivot-shelf-list.forced-limited-animation .placeholder-tile,.limited-animation .pivot-shelf-list .placeholder-tile{height:7.83em;width:14em}#pivot-post-play .pivot-video-tile,#pivot-post-play .placeholder-tile{height:10.625em;width:18.5em}#pivot-post-play .tile-top{height:10.625em}.limited-animation #pivot-post-play .tile-top,#pivot-post-play.forced-limited-animation .tile-top{height:9.825em;width:17.7em}.pivot-video-tile,.pivot-channel-tile{height:7.83em;width:14em}.forced-limited-animation .pivot-video-tile,.forced-limited-animation .pivot-auto-play-tile,.forced-limited-animation .pivot-channel-tile,.pivot-shelf-list.forced-limited-animation .placeholder-tile,#pivot-post-play.forced-limited-animation .placeholder-tile,.limited-animation .pivot-video-tile,.limited-animation .pivot-auto-play-tile,.limited-animation .pivot-channel-tile,.limited-animation #pivot-post-play .placeholder-tile,.limited-animation .pivot-shelf-list .placeholder-tile{background:none;display:inline-block;margin-right:.5em;position:relative;vertical-align:bottom}.forced-limited-animation .pivot-channel-tile,.limited-animation .pivot-channel-tile{border-radius:100%;width:10.625em}.forced-limited-animation .pivot-video-tile.focused,.forced-limited-animation .pivot-auto-play-tile.focused .pivot-video-tile,.limited-animation .pivot-video-tile.focused,.limited-animation .pivot-auto-play-tile.focused .pivot-video-tile{background-color:#fff}.pivot-video-tile .tile-top{height:7.83em}.forced-limited-animation .pivot-video-tile .tile-top,.limited-animation .pivot-video-tile .tile-top{background-color:inherit;height:7.03em;padding:.4em;width:13.2em}.forced-limited-animation .pivot-video-tile.focused .tile-top,.limited-animation .pivot-video-tile.focused .tile-top{background-color:#fff}.pivot-video-tile .tile-overlay{background-color:rgba(0,0,0,.5);color:#fff;display:none;height:100%;margin-top:-7.83em;text-align:center;width:100%}.forced-limited-animation .pivot-video-tile .tile-overlay,.limited-animation .pivot-video-tile .tile-overlay{margin-top:-7.03em}#pivot-post-play .pivot-video-tile .tile-overlay{margin-top:-10.625em}.limited-animation #pivot-post-play .pivot-video-tile .tile-overlay,#pivot-post-play.forced-limited-animation .pivot-video-tile .tile-overlay{margin-top:-9.875em}.pivot-video-tile.has-overlay .tile-overlay{display:block}#pivot-post-play .pivot-video-tile.has-overlay .tile-overlay{opacity:0}#pivot-post-play.focused .pivot-video-tile.has-overlay .tile-overlay{opacity:1}.post-play .pivot-shelf-list .pivot-video-tile.has-overlay .label{display:none}.post-play .pivot-shelf-list .pivot-video-tile.has-overlay .icon-player-play{font-size:4em}.post-play .pivot-shelf-list .pivot-video-tile.has-overlay .icon-player-play:before{content:"\00e638"}.pivot-video-tile .tile-overlay .icon{font-family:'youtube-icons';font-size:3em;padding-top:.5em}.pivot-video-tile .tile-overlay .label{font-size:1.2em}#pivot-post-play .pivot-video-tile .tile-overlay{color:#e1e1e1}#pivot-post-play .pivot-video-tile .tile-overlay .icon{font-size:4.5em;padding-bottom:.15em;padding-top:.4em}#pivot-post-play .pivot-video-tile .tile-overlay .label,#pivot-post-play .pivot-video-tile .tile-overlay .icon{opacity:0;-o-transition:opacity .25s;-webkit-transition:opacity .25s;transition:opacity .25s}#pivot-post-play.focused .pivot-video-tile .tile-overlay .label,#pivot-post-play.focused .pivot-video-tile .tile-overlay .icon{opacity:1}.limited-animation #pivot-post-play .pivot-video-tile .tile-overlay .label,.limited-animation #pivot-post-play .pivot-video-tile .tile-overlay .icon,#pivot-post-play.forced-limited-animation .pivot-video-tile .tile-overlay .label,#pivot-post-play.forced-limited-animation .pivot-video-tile .tile-overlay .icon{-o-transition:none;-webkit-transition:none;transition:none}.pivot-video-tile .video-thumb{background-position:center;background-repeat:no-repeat;background-size:100%;height:100%;width:100%}.pivot-video-tile .decoration{margin-top:-2.1em;text-align:right}.pivot-video-tile .duration{background-color:rgba(0,0,0,.7);font-size:1em;font-weight:bold;padding:.5em}.pivot-auto-play-tile{background:none;height:10.625em;overflow:visible;width:18.5em}.forced-limited-animation .pivot-auto-play-tile,.limited-animation .pivot-auto-play-tile{height:10.625em;width:18.5em}.pivot-auto-play-tile .post-play-countdown{display:block;font-size:1.8em;margin-left:10.8em;opacity:0;pointer-events:none;position:absolute;text-align:left;text-shadow:none;top:0;width:17.5em}.pivot-auto-play-tile.countdown-active .post-play-countdown{opacity:1;pointer-events:inherit}.pivot-auto-play-tile .details,.pivot-auto-play-tile .title{color:#fff;opacity:0;pointer-events:none}.pivot-auto-play-tile.focused .details,.pivot-auto-play-tile.focused .title{opacity:1;pointer-events:inherit}.pivot-auto-play-tile .title{font-size:1.4em;margin-left:14em;max-height:2.5em;overflow:hidden;position:absolute;top:2.2em;width:20em}.pivot-auto-play-tile .details{font-size:1.1em;margin-left:17.8em;position:absolute;top:6em;width:37em}.pivot-auto-play-tile .details,.pivot-auto-play-tile .title,.pivot-auto-play-tile .post-play-countdown{-o-transition:opacity .25s;-webkit-transition:opacity .25s;transition:opacity .25s}.limited-animation .pivot-auto-play-tile .details,.limited-animation .pivot-auto-play-tile .title,.limited-animation .pivot-auto-play-tile .post-play-countdown{-o-transition:opacity none;-webkit-transition:none;transition:none}#pivot-post-play .pivot-auto-play-tile .pivot-video-tile{padding-left:0;padding-top:0}#pivot-post-play #post-play-list .no-content-message{display:none}.forced-limited-animation .pivot-horizontal-list,.limited-animation .pivot-horizontal-list{margin-left:-15em}.pivot-horizontal-list.focused .pivot-sliding-highlighter,.post-play #post-play-list.focused .pivot-sliding-highlighter{display:block}.pivot-horizontal-list .pivot-sliding-highlighter,.post-play .pivot-sliding-highlighter{background:transparent;border:.5em #fff solid;box-shadow:.083em .083em .75em .167em #000 inset;height:7.5em;margin-left:-.4em;margin-top:-.4em;pointer-events:none;width:13.8em}.pivot-shelf{position:absolute;width:0}.forced-limited-animation .pivot-shelf,.limited-animation .pivot-shelf{opacity:.5;position:relative}.forced-limited-animation .pivot-shelf.focused,.limited-animation .pivot-shelf.focused{opacity:1}.limited-memory.limited-animation .pivot-shelf{opacity:1}.pivot-shelf .title-container{margin-bottom:1em;visibility:hidden;white-space:nowrap}.pivot-shelf .title-container .icon{font-family:'youtube-icons';vertical-align:middle}.pivot-shelf .tile-title span{display:inline-block;overflow:hidden;text-overflow:ellipsis}.pivot-shelf.focused .title-container{visibility:visible}.pivot-shelf .tile-title,.pivot-shelf .shelf-title{margin-bottom:.3em}.pivot-shelf .tile-title{height:1.7em}.pivot-shelf .tile-title .title{font-size:1.3em;max-width:30em}.pivot-shelf .tile-title .author,.pivot-shelf .tile-title .view{margin-left:.3em;max-width:20em}.pivot-shelf .tile-title .author,.pivot-sliding-highlighter .select{display:none}.pivot-shelf.has-author .tile-title .author{display:inline-block}.forced-limited-animation .pivot-horizontal-list .list,.limited-animation .pivot-horizontal-list .list{width:98em}.forced-limited-animation .postplay-horizontal-list .list,.limited-animation .postplay-horizontal-list .list{margin-left:-13.4em;width:98em}.forced-limited-animation .pivot-channel-tile.focused .tile-top,.limited-animation .pivot-channel-tile.focused .tile-top{background-color:#fff}.forced-limited-animation .pivot-channel-tile .tile-top,.limited-animation .pivot-channel-tile .tile-top{height:6.83em;padding:.4em;width:6.83em}.pivot-channel-tile .tile-top{background:none;border-radius:50%;height:7.83em;margin:0 auto;overflow:hidden;width:7.83em}.pivot-channel-tile .tile-top .video-thumb{background-color:rgba(0,0,0,0)}.pivot-channel-tile .video-thumb{border-radius:50%}.pivot-shelf .pivot-horizontal-list.channel-selected .pivot-sliding-highlighter{border-radius:50%;height:7.5em;margin-left:-.3em;margin-top:-.3em;-moz-transform:translateX(3.2em);-o-transform:translateX(3.2em);-webkit-transform:translateX(3.2em);transform:translateX(3.2em);width:7.5em}.pivot-shelf.channel-selected .shelf-title{visibility:hidden}.pivot-footer{height:9em}.pivot-button-list{padding-top:4em}.pivot-button-list .icon-button{display:inline-block;padding:.5em 1em}.pivot-button-list .icon-button .icon{font-family:'youtube-icons';margin-right:.3em}.pivot-footer.focused .pivot-button-list .icon-button.selected{background-color:#fff}.pivot-button-list .icon-button span{color:#fff;font-size:1.5em}.pivot-footer.focused .pivot-button-list .icon-button.selected span{color:#000}#pivot-post-play{padding-left:6em;padding-top:10em}.limited-animation #pivot-post-play,#pivot-post-play.forced-limited-animation{padding-left:0}#pivot-post-play #post-play-list{font-size:1.1em;margin-left:.1em}.forced-limited-animation .pivot-auto-play-tile,.limited-animation .pivot-auto-play-tile{padding-left:0;vertical-align:bottom}#pivot-post-play.forced-limited-animation .pivot-video-tile,.limited-animation #pivot-post-play .pivot-video-tile{vertical-align:bottom}.forced-limited-animation .pivot-auto-play-tile .pivot-video-tile,.limited-animation .pivot-auto-play-tile .pivot-video-tile{display:block;position:absolute}#pivot-post-play .pivot-sliding-highlighter{border-width:.5em;height:9.9em;margin-top:0;width:18.4em}.limited-animation.sets-ui .exp-densityBrowse .auto-play-tile:not(.focused) .video-tile,.limited-animation .exp-densityBrowse .auto-play-tile.focused .video-tile,.limited-animation .exp-densityBrowse .auto-play-tile{background-color:inherit}.limited-animation .exp-densityBrowse .auto-play-tile.focused .tile-top{background:#fff}.limited-animation .exp-densityBrowse .auto-play-tile .post-play-countdown{top:-2.67em}.loki-video-source{color:#fff;font-size:1.5em;left:5.0em;position:absolute;top:2.6em}.loki-title-card{background:-o-linear-gradient(bottom,rgba(0,0,0,.9) 0%,rgba(0,0,0,.6) 80%,transparent 100%);background:-webkit-linear-gradient(bottom,rgba(0,0,0,.9) 0%,rgba(0,0,0,.6) 80%,transparent 100%);background:linear-gradient(to top,rgba(0,0,0,.9) 0%,rgba(0,0,0,.6) 80%,transparent 100%);bottom:0;display:block;height:25%;position:absolute;width:100%}.loki-title-card .loki-metadata{color:#f1f1f1;height:100%;margin-bottom:2.6em;margin-left:8.0em;overflow:hidden;white-space:nowrap;width:100%}.loki-metadata #loki-progress-bar{display:block;height:2.0em;left:8.0em;padding:0;position:absolute;top:-4.0em;width:80%}#loki-progress-bar .progress-bar-playhead{display:none}.loki-metadata .loki-video-avatar{background-size:contain;display:inline-block;height:8.0em;width:8.0em}.loki-metadata .loki-video-text{display:inline-block;height:100%;margin:0 5.0em 0 3.5em;width:80%}.loki-video-text .loki-video-title{font-size:2.4em;margin-top:-.1em;overflow:hidden;text-overflow:ellipsis;width:80%}.loki-video-text .loki-channel-name{font-size:1.5em;margin-top:.4em;overflow:hidden;text-overflow:ellipsis;width:80%}.loki-video-text .loki-video-description{line-height:1.4em;margin-top:.4em;max-height:4.2em;overflow:hidden;white-space:normal;width:80%}.toaster{color:#aaa;font-size:133%;position:absolute;top:0;width:100%}.toaster .list{margin-top:.8em;position:absolute;width:100%}.toaster .toast{min-height:3.5em;overflow:hidden;position:relative;text-align:center;width:100%;-moz-transition:all .6s ease;-ms-transition:all .6s ease;-o-transition:all .6s ease;-webkit-transition:all .6s ease}.toaster .toast-container{background-color:rgba(27,25,26,0.8);border:1px solid black;display:inline-block;margin:.2em 0 1em;max-width:60%;opacity:1;padding:.5em 1em .6em;-moz-transition:all .3s ease;-ms-transition:all .3s ease;-o-transition:all .3s ease;-webkit-transition:all .3s ease}.toaster .toast.toast-removing .toast-container{opacity:0}.toaster .toast-container>div{display:inline-block;vertical-align:middle}.toaster .toast-icon{background-position:center;background-repeat:no-repeat;background-size:1.1em 1.1em;height:1.2em;width:1.2em}.device-toast .toast-container{padding:0.7em}.toaster .device-toast .toast-msg{background-position:center left;background-repeat:no-repeat;background-size:1.1em 1.1em;padding-left:0.8em}.toaster .avatar{height:2.6em;width:2.6em}.toaster .avatar>div{background-position:center;background-size:cover;height:inherit;width:inherit}.toaster .video-image>div{background-position:center;background-size:cover;height:100%;width:100%}.toast .update-playlist-toast{bottom:0;max-width:14em;padding:0.8em;position:fixed;right:0;text-align:left}.update-playlist-toast .overlay{background:#000;height:55%;margin-left:56%;margin-top:-55%;opacity:.8;width:44%}.update-playlist-toast .video-count{font-size:2.3em;font-weight:normal;line-height:1.2em;padding-top:0.8em;text-align:center}.update-playlist-toast .icon-playlist{font-family:'youtube-icons';font-size:2.2em;height:50%;overflow:hidden;padding:.2em;text-align:center}.update-playlist-toast .avatar{padding:0.3em}.update-playlist-toast .contrast-container{background-color:rgba(0,0,0,0.8);padding:0.4em}.update-playlist-toast .tile-top{height:7.7em;width:14em}.update-playlist-toast .toast-msg{font-size:85%;padding-left:0.6em}.update-playlist-toast .truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:13.2em}.update-playlist-toast .toast-msg.avatar{height:2.1em;width:10em;overflow:hidden}.update-playlist-toast .toast-msg.truncate{white-space:normal}.update-playlist-toast .toast-msg.no-user-avatar{font-size:85%;margin-left:-2.2em}.update-playlist-toast .wrapper>div{display:inline-block;vertical-align:middle}.toaster .toast-icon{background-image:url(img/dial-sprite.png);background-size:100%;max-width:100%}.toast-icon.avatar{background-image:none}.toaster .android-phone-connected{background-position:0 0%}.toaster .android-phone-disconnected{background-position:0 10.14%}.toaster .android-tablet-connected{background-position:0 20.29%}.toaster .android-tablet-disconnected{background-position:0 30.43%}.toaster .ios-phone-connected{background-position:0 40.58%}.toaster .ios-phone-disconnected{background-position:0 50.72%}.toaster .ios-tablet-connected{background-position:0 60.87%}.toaster .ios-tablet-disconnected{background-position:0 71.0%}.toaster .laptop-connected{background-position:0 81.16%}.toaster .laptop-disconnected{background-position:0 91.3%}.toaster .remote-connected{background-position:0 100%;background-size:233.33%}.toaster .remote-disconnected{background-position:0 100%;background-size:233.33%}.toaster .toast-progress{border:1px solid #aaa;width:10em}.toaster .toast-progress .progress{background-color:#666;height:1em}.toaster .volume-muted{background-image:url(img/volume_mute_pressed.png)}.toaster .volume-low{background-image:url(img/volume_0_pressed.png)}.toaster .volume-mid{background-image:url(img/volume_1_pressed.png)}.toaster .volume-high{background-image:url(img/volume_2_pressed.png)}.toaster .volume-toast .toast-msg{text-align:right;width:1.2em}.toaster .volume-toast .toast-container{-moz-transition-delay:.3s;-ms-transition-delay:.3s;-o-transition-delay:.3s;-webkit-transition-delay:.3s}.toaster .volume-toast.toast-removing .toast-container{-moz-transition-delay:0s;-ms-transition-delay:0s;-o-transition-delay:0s;-webkit-transition-delay:0s}.unlimited-welcome-toast .toast-container{box-shadow:0em 0em .6em .02em #000;height:6.5em;margin:0em;padding-right:1em;padding:0;position:fixed;right:0;text-align:left;top:0;width:24.5em;transform:translateX(0);opacity:1;-moz-transition:all .6s ease;-ms-transition:all .6s ease;-o-transition:all .6s ease;-webkit-transition:all .6s ease}.unlimited-welcome-toast.toast-displaying .toast-container{opacity:0;transform:translateX(18em)}.limited-animation .unlimited-welcome-toast .toast-container{opacity:1;-o-transition:none;-webkit-transition:none;transition:none;transform:none}.unlimited-toast-messages{position:absolute;padding-top:2.1em;padding-left:1.3em;width:12em}.unlimited-toast-msg-top{color:#ddd;line-height:1.0em}.unlimited-toast-msg-bottom{padding-top:0.5em;font-size:0.7em}.unlimited-toast-background{background-size:100%;background-position:left;background-repeat:no-repeat;height:100%;width:9em}.unlimited-toast-logo{background-size:100%;background-repeat:no-repeat;height:100%}#dialog{color:#fff;display:none;height:100%;left:0;position:absolute;top:0;width:100%}#error-markup #dialog{display:block}#dialog.focused{display:block}#dialog-wrapper{background-color:#000;height:30em;margin-top:11.1em;padding:1.3em 6em;position:relative}#dialog.browse-sets #dialog-wrapper{background-color:rgba(32,32,32,.5);height:100%;margin-top:0;padding:1.3em 10%}#dialog .dialog-contents{background:no-repeat 90% 30%}#dialog.browse-sets .dialog-contents .icon-simple-dialog{color:#fff}#dialog .dialog-contents .dialog-large-icon{display:none}#dialog.browse-sets .dialog-contents .dialog-large-icon{display:inline-block;font-family:'youtube-icons';font-size:10em;height:2.5em;line-height:2.5em;text-align:center;width:35%}#dialog.browse-sets .icon-simple-dialog .icon-dialog-content .extra-info{color:rgba(255,255,255,.75);display:block;font-family:monospace;font-size:1.5em;line-height:1.4em;padding-top:.8em}#dialog.browse-sets .icon-simple-dialog .icon-dialog-content .label{display:block;font-size:1.8em;line-height:1.1em;padding-top:6.45em}#dialog .dialog-contents .header .title{font-size:2.5em}#dialog.browse-sets.browse-sets-titled-dialog .dialog-contents .header{border-bottom:1px solid rgba(255,255,255,.2);height:3.4em;margin:0 1.5em}#dialog.browse-sets.browse-sets-titled-dialog .dialog-contents .header .title{color:rgba(255,255,255,.5);display:block;font-size:1.3em;font-weight:300;height:3em;line-height:3em}#dialog.browse-sets .buttons{font-size:1.8em;margin-right:2%;margin-top:.8em;text-align:right}#dialog.browse-sets .connection-steps{padding:0}#dialog.browse-sets.exit .dialog-contents .header .title{display:block;padding:1em 6.5em 3em 6.5em}#dialog.browse-sets .dialog-contents{background-color:#000;height:80%;margin-top:5%}#dialog.browse-sets.closed-captions .dialog-contents{height:75%}#dialog.browse-sets .dialog-cancel-button{text-align:center}.video-overview .dialog-contents{font-size:2em}#dialog.qr-dialog .dialog-contents{color:#ccc;font-size:1.1em;overflow:hidden;padding-top:4em}#dialog.qr-dialog .dialog-contents .header .title{color:#fff;font-size:2em}#dialog .box{padding-top:1.5em}#dialog.qr-dialog a{color:#fff;display:block;font-size:1.5em}#dialog.qr-dialog .qr{height:7em;margin:.2em 0;width:7em;background-size:100%}#dialog.qr-dialog .dialog-icon{display:block;background-size:12em}#dialog.help .dialog-icon{background-image:url(img/icon-help.png)}#dialog.feedback .dialog-icon{background-image:url(img/icon-feedback.png)}#dialog.system-error .dialog-icon{font-family:'youtube-icons';font-size:10em;margin-right:0;padding-right:.5em;padding-top:.5em;text-align:right;width:2em}#dialog.system-error .dialog-icon:before{content:"\00e656"}#dialog.qr-dialog.browse-sets .dialog-icon{display:none}#dialog .text-dialog{bottom:1.5em;left:0;padding:2em 20em 0 6em;position:absolute;white-space:normal}#dialog.text-dialog .dialog-contents .header .title{font-size:3em;padding-bottom:.5em}.text-dialog #dialog-view{color:#aaa;padding-bottom:1em;width:90%}.text-dialog #dialog-view .dialog-contents{font-size:1.8em}#dialog.browse-sets .icon-dialog-content{display:inline-block;height:25em;vertical-align:top;width:60%}#dialog-view .url{color:#fff;font-size:1.25em;padding-bottom:.8em}#dialog-view .flag-claim .url{padding-bottom:.5em}#dialog-view .reset-help{display:block;width:25em}#dialog.browse-sets .tos-dialog .icon-dialog-content{padding-top:9em}#dialog.browse-sets .tos-dialog .icon-dialog-content .subtitle{color:#aaa}#dialog.browse-sets .tos-dialog .icon-dialog-content .url{font-size:2em}#dialog.browse-sets.qr-dialog .dialog-contents{padding-top:0}#dialog.browse-sets.qr-dialog .icon-dialog-content .link{margin-top:5em;padding-top:0}#dialog.browse-sets.qr-dialog .icon-dialog-content .qr-code-wrapper{margin-top:2em}#dialog.browse-sets.qr-dialog .icon-dialog-content .qr-code-wrapper .qr{border:.2em rgba(255,255,255,.1) solid;padding:.5em}#dialog .signed-out-dialog{font-size:1.8em}.connection-error,.connection-steps{display:inline-block;font-weight:300;padding:0 1em 1em 2em;white-space:normal}.connection-error{vertical-align:top}.connection-error div{margin-bottom:1em}#dialog .login-dialog .activation-code{font-size:1.3em;letter-spacing:.1em;line-height:1.3em}#dialog .sets-login-dialog .body-text{display:inline-block;height:25em;vertical-align:top;width:50%}#dialog .sets-login-dialog .body-text .connection-instructions{font-size:1.9em;margin-top:3.5em}#dialog .sets-login-dialog .standard-message,#dialog .sets-login-dialog .like-dislike-message,#dialog .sets-login-dialog .subscribe-message,#dialog .sets-login-dialog .upload-message,#dialog .sets-login-dialog .player-message{display:none}#dialog.standard-login .sets-login-dialog .standard-message,#dialog.like-dislike-login .sets-login-dialog .like-dislike-message,#dialog.subscribe-login .sets-login-dialog .subscribe-message,#dialog.upload-login .sets-login-dialog .upload-message,#dialog.player-login .sets-login-dialog .player-message{display:block}#dialog .pairing .qr-code-wrapper{display:inline-block;vertical-align:top}#dialog .manual-connect-content .connection-steps{padding:0}#dialog .manual-connect-content .connection-steps .label{color:#aaa;font-size:.7em;margin-top:1em}#dialog .manual-connect-content .connection-steps .step1,#dialog .manual-connect-content .connection-steps .step2{margin-top:.7em}#dialog .manual-connect-content .connection-steps .pair-url,#dialog .manual-connect-content .connection-steps .pair-code{margin-left:.3em}#dialog.browse-sets .manual-connect-content .connection-steps .label{font-size:1.3em}#dialog.browse-sets .manual-connect-content .connection-steps .step1,#dialog.browse-sets .manual-connect-content .connection-steps .step2{display:inline-block;font-size:1.3em}#dialog.browse-sets .manual-connect-content .connection-steps .pair-url,#dialog.browse-sets .manual-connect-content .connection-steps .pair-code{display:inline-block;font-size:1.3em;margin-left:.3em}#dialog.browse-sets .pairing .connection-instructions{font-size:1em;padding-top:10em}#dialog .manual-connect .dial-upsell-content{display:none}#dialog .dial-upsell .manual-connect-content .connection-steps .no-dial-connect-step1,#dialog .manual-connect .manual-connect-content .connection-steps .with-dial-connect-step1{display:none}#dialog .manual-connect .manual-connect-content .connection-steps{font-size:1.5em}#dialog .manual-connect .manual-connect-content .connection-steps .label{display:none}#dialog.browse-sets .dial-upsell .dial-upsell-content{font-size:1.8em;white-space:normal;width:80%}#dialog.browse-sets .dial-upsell .dial-upsell-content .cast-icon{height:1.3em;margin:0;width:1.5em}#dialog.browse-sets .dial-upsell .manual-connect-content{color:#aaa;font-size:1.4em;line-height:1em}#dialog.browse-sets .remote-reset-dialog .connected-list .connected-header{color:#fff;font-size:1.5em;margin-top:6em}#dialog.browse-sets .remote-reset-dialog .connected-list .devices{display:inline-block;font-size:1em}#dialog.browse-sets .remote-reset-dialog .connected-list .devices>div{display:inline-block;font-size:1em;padding-left:0;padding-right:1.5em;width:10em}#dialog.browse-sets .remote-reset-dialog .reset-help{font-size:1.5em;margin-top:1em}#dialog .logout-authenticated-info{padding:2.5em 0}#dialog .login-user-icon{background-size:cover;display:inline-block;height:4em;margin:2em 2em 0 0;width:4em}#dialog.browse-sets .login-user-icon{margin:0 15%;border-radius:20em}#dialog .login-user-info{display:inline-block;margin-left:1.7em;margin-top:-.8em;font-size:2em;font-weight:300;width:82%}#dialog .login-user-info h3{font-size:2.2em;font-weight:normal;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#dialog.browse-sets .logout-authenticated-info{padding:0}#dialog.browse-sets .login-user-info{height:13em;margin:0;width:100%}#dialog.browse-sets .login-user-info .display-name,#dialog.browse-sets .login-user-info .platform-container{display:none}#dialog.browse-sets .login-user-info .signed-in-message{display:inline-block;width:50%}#dialog.browse-sets .login-user-info .signed-in-label strong{color:#fff;display:block;font-size:2.5em;overflow:hidden;text-overflow:ellipsis}#dialog.browse-sets .login-user-info .signed-in-label{color:#aaa;font-size:.5em;margin-top:10em}#dialog.browse-sets .login-user-info .sign-out-label{margin-top:1em}#dialog .spinner{height:10em;width:10em}#dialog .spinner .loading-indicator{background-size:contain;height:100%;width:100%}#dialog .buttons{font-size:3em;font-weight:300;padding-top:.3em}#dialog .buttons>div{background-color:#333;color:#000;cursor:pointer;display:inline-block;min-width:2.4em;padding:0 .3em;text-align:center}#dialog.browse-sets .buttons .button{background-color:#000;color:rgba(255,255,255,.5);min-width:3em;padding:.2em .8em}#dialog.browse-sets .buttons .focused,#dialog.browse-sets .buttons .button.focused:hover{background-color:#f1f1f1;color:#666}#dialog .buttons .button:hover,#dialog.browse-sets .buttons .button:hover{background-color:#666}#dialog .buttons div{margin-left:.5em}#dialog .buttons .focused,#dialog .buttons .focused:hover{background-color:#f1f1f1;color:#666}#dialog .ps4-logout-dialog .logout-prompt{font-size:1.7em}#dialog .logout-prompt{margin-top:6em}.scrolling-text{font-size:1.3em;height:15em;margin-right:1.1em;margin-top:1em;overflow:hidden}.scrolling-text h4{margin:0;padding:0}.scrolling-text>div{overflow:hidden;padding-bottom:1em}.flag-list-container{margin-top:.5em}.flag-list .button{color:#868686;cursor:pointer;display:inline-block;font-size:1.8em;padding:.4em;vertical-align:top}.flag-list .button{width:12em}.flag-list .button:hover{background-color:#444}.flag-list .button.focused,.flag-list .button.focused:hover{background-color:#fff;color:#676767}#flag-widget{font-weight:300}.flag-video{color:#676767;font-size:1.8em;font-weight:300;padding-top:1em;width:47%}.flag-video .url{color:#fff;display:block;font-size:1.6em;padding-top:.5em}.flag-example{background:url(img/flag.png) no-repeat 0 0;background-size:contain;display:inline-block;height:57%;position:absolute;right:18%;top:9%;width:23%}.flag-claim .metadata{display:block;font-size:1em;font-weight:500;padding-top:.2em;white-space:normal}.flag-claim .url{color:#868686;display:block;font-weight:300}.flag-claim{color:#676767;font-size:1.6em;font-weight:300;margin:1em 0 0 2em;white-space:nowrap}.flag-claim .copyright-infringment{display:inline-block;white-space:normal;width:50%}.flag-claim .privacy-invasion{display:inline-block;margin-left:4%;vertical-align:top;white-space:normal;width:40%}.flag-claim .email{color:#868686}.flag-claim .subtitle{font-size:1.2em;font-weight:500}.player-error-dialog.player-error{color:#aaa;font-size:1.8em;padding:1em 0 8em 0em}#dialog .scrollbar{height:70%;margin-top:5em;right:5em}#dialog .scrollbar .handle{height:5em}.paid-channel-info{font-size:1.4em;padding-top:1em}.paid-channel-info .channel-url{font-weight:bold}.status-dialog #dialog-wrapper{background-color:rgba(0,0,0,.5)}.status-dialog .icon{background:url(img/pairing-promo-combo.png) center center no-repeat;background-size:contain;display:inline-block;height:11em;vertical-align:middle;width:25%}.status-dialog .info{display:inline-block;padding-left:.5em;vertical-align:middle;width:70%}.status-dialog .message{color:#ccc;font-size:2em}.status-dialog #dialog-view{padding-top:7em}.dialog-focused #legend{bottom:12%;display:block}#legend.legend-for-dialog-closed-captions{bottom:6%}#dialog.confirm-cookies .dialog-contents .header .title{font-size:3em}#dialog.confirm-cookies #dialog-view{color:#aaa;font-size:1.8em;height:8em;padding-top:.9em}.single-pane-selector{padding-bottom:1em;padding-top:1em;white-space:nowrap}.single-pane-selector .list{display:inline-block;margin-right:.5em;padding-left:.5em;padding-right:.5em;vertical-align:top;width:94%}.single-pane-selector .button .label{width:90%}.single-pane-selector .check-button.previously-selected .icon-check{display:inline-block}.split-pane-selector{border-bottom:.1em solid rgba(255,255,255,.2);padding-bottom:1em;padding-top:1em;white-space:nowrap}.check-button .icon-check{display:none;font-family:youtube-icons}.single-pane-selector .labeled-value,.split-pane-selector .labeled-value{color:#868686;font-size:1.4em;height:2.8em;line-height:1.5em;overflow:hidden;padding:0 1em;white-space:normal}.single-pane-selector .labeled-value .value,.split-pane-selector .labeled-value .value{color:#666;display:block;font-size:.7em;line-height:1.4em}.single-pane-selector .button,.split-pane-selector .button{color:#868686;cursor:pointer;font-size:1.4em;height:2.8em;line-height:2.8em;overflow:hidden;padding:0 .4em;white-space:normal}.single-pane-selector .button .label,.split-pane-selector .button .label{display:inline-block;line-height:1.3em;vertical-align:middle}.single-pane-selector .subtitled-button,.split-pane-selector .subtitled-button{line-height:1.5em}.single-pane-selector .button.no-model,.split-pane-selector .button.no-model{visibility:hidden}.split-pane-selector .list{display:inline-block;vertical-align:top;width:47%}.split-pane-selector .list:first-child{border-right:.1em solid rgba(255,255,255,.2);margin-right:.5em;padding-right:.5em}.single-pane-selector .button:hover,.single-pane-selector .list:not(.focused) .button.selected,.split-pane-selector .button:hover,.split-pane-selector .list:not(.focused) .button.selected{background-color:#444;color:#fff}.single-pane-selector .button.focused,.single-pane-selector .button.focused:hover,.split-pane-selector .button.focused,.split-pane-selector .button.focused:hover{background-color:#fff;color:black}.single-pane-selector .subtitled-button span.subtitle,.split-pane-selector .subtitled-button span.subtitle{color:#666;display:block;font-size:.7em;line-height:1.4em}.color-button .preview{border-width:2px;border-color:#000;border-style:solid;color:#868686;display:inline-block;height:1em;margin:0 .2em .2em .2em;vertical-align:middle;width:1em}.color-button .preview.rounded{border-radius:50%}.preview.black{background-color:#000;border-width:1px;border-color:#fff;border-style:solid}.preview.red{background-color:#f00}.preview.magenta{background-color:#f0f}.preview.blue{background-color:#00f}.preview.cyan{background-color:#0ff}.preview.green{background-color:#0f0}.preview.yellow{background-color:#ff0}.preview.white{background-color:#fff}.debug-dialog{font-size:.9em}.debug-dialog span.label{font-weight:bold}#dialog.browse-sets .video-upload-dialog-contents{display:inline-block;font-size:1.6em;margin:1em 3% 0 3%;text-align:left;vertical-align:top;width:55%}#dialog.browse-sets .modify-video .video-upload-dialog-contents{margin-top:2em;text-align:center}.video-upload-status .video-url{color:#2793e6}.delete-video{padding-bottom:6em}.modify-video .list .button{background-position:50% 20%;background-repeat:no-repeat;background-size:60% 60%;color:#848484;display:inline-block;height:8em;margin-right:1em;text-align:center;width:8em}.modify-video .list .button.focused{background-color:#fff;color:#282828}.modify-video .list .button span{display:block;font-size:1.2em;margin:4.6em .5em .5em .5em;overflow:hidden;white-space:nowrap}.modify-video .modify-edit-button{background-image:url('img/edit_tile_light.png')}.modify-video .modify-edit-button.focused{background-image:url('img/edit_tile_dark.png')}.modify-video .modify-delete-button{background-image:url('img/trash_tile_light.png')}.modify-video .modify-delete-button.focused{background-image:url('img/trash_tile_dark.png')}.delete-video-dialog .video-tile .details,.modify-video .video-tile .details{margin-top:-.1em}.browse-sets #modify-list .button{height:7.5em;margin-right:.9em;width:7.5em}.browse-sets #modify-list .button span{font-size:1.1em;margin-top:5.2em}.delete-video-dialog{margin-bottom:14em}.browse-sets .delete-video-dialog{margin-bottom:1em}.video-processing,.video-upload-error{font-size:1.5em}.video-upload-error .error-container{color:#aaa;margin-top:1em}#dialog .buttons .upload-terms,#dialog .buttons .upload-terms:hover{background-color:#000;color:#555;display:block;font-size:.6em;margin-left:1.5em;text-align:left}.upload-progress{margin-bottom:1em;width:100%}.upload-progress-value{text-align:left;width:100%}.upload-progress span{margin-left:-1em;position:relative;width:4em}.upload-progress .upload-progress-bar{background-color:#aaa;width:100%}.upload-progress .upload-progress-bar .completed{background-color:#2793e6;height:1em}.privacy-button{background:.4em 50% no-repeat;background-size:1.5em;cursor:pointer;position:relative}.privacy-button .checkbox{background-position:100%;background-size:2em;height:2em;left:85%;position:absolute;top:0;width:2em}.privacy-button.checked .checkbox{background-image:url(img/icon-privacy-check-light.png)}.privacy-button.focused.checked .checkbox{background-image:url(img/icon-privacy-check-dark.png)}.privacy-button .label .name{background-position:0 .5em;background-size:2em;line-height:1.5em;text-indent:1.8em}.privacy-button .description{font-size:.6em;line-height:.8em;padding-left:2.9em}.privacy-button .name{font-size:1em;line-height:1.2em;padding-left:1.7em}.private-state,.video-tile .private{background-image:url(img/icon-privacy-private-light.png)}.private-state.focused{background-image:url(img/icon-privacy-private-dark.png)}.public-state,.video-tile .public{background-image:url(img/icon-privacy-public-light.png)}.public-state.focused{background-image:url(img/icon-privacy-public-dark.png)}.unlisted-state,.video-tile .unlisted{background-image:url(img/icon-privacy-unlisted-light.png)}.unlisted-state.focused{background-image:url(img/icon-privacy-unlisted-dark.png)}.video-tile .private,.video-tile .public,.video-tile .unlisted{background-position:left;background-repeat:no-repeat;background-size:1.5em;min-height:1.5em;min-width:1.5em;padding-left:1.5em}.video-privacy .button,.video-overview .button{display:inline-block;height:2em;line-height:2em;margin:.1em 0;overflow:hidden;padding:.1em .5em;vertical-align:top;white-space:nowrap;width:65%}.video-privacy .button{width:85%}.video-overview .button:first-child{width:20%}.video-privacy .button.focused,.video-privacy .button:not(.disabled):hover,.video-overview .button.focused,.video-overview .button:not(.disabled):hover{background-color:#fff;color:#676767}#dialog.browse-sets .video-privacy .button:nth-child(2){width:11em}#dialog.browse-sets .video-uploads{margin:3em 1em 2em}#dialog.browse-sets .video-uploads .carousel{overflow:hidden}#dialog.browse-sets .video-uploads .carousel .video-tile .details{text-align:left}.video-overview .title-button{line-height:1em;white-space:normal}#dialog.browse-sets .video-overview .title-button .label{display:inline-block;line-height:2em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:95%}.video-overview .channel-button{background-position:.35em 50%;background-repeat:no-repeat;background-size:1.5em;line-height:2em;overflow:hidden;text-indent:1.8em;text-overflow:ellipsis}.video-uploads .carousel{height:20em;position:relative;white-space:nowrap}.video-tile-container{display:inline-block;margin-top:1.7em;text-align:right;width:35%}.video-tile-container .video-tile{border:.1em rgba(255,255,255,.2) solid;display:inline-block;height:22em;position:static;text-align:left;width:20em}.video-tile-container .video-tile .tile-top{height:51%}.video-tile-container .video-tile .tile-bottom .details{height:inherit}.video-uploads .carousel .video-tile{height:20em;width:18em}.video-uploads .video-tile .decoration{top:7em}.video-tile-container .video-tile .tile-bottom,.video-uploads .video-tile .tile-bottom{width:initial}.dialog.closed-captions #dialog-wrapper{margin-top:5em}#dialog.closed-captions-language-only #dialog-wrapper{padding:1.6em 26%}#dialog.closed-captions-language-only #options-list{display:none}#legend.legend-for-dialog-closedCaptionsDialog{bottom:24%}#dialog.closed-captions-language-only~#legend{right:29%}.simple-dialog{margin:3em;font-size:1.6em}.lang-ja_JP .connection-instructions .step1,.lang-ja_JP .connection-instructions .step2,.lang-ko_KR .connection-instructions .step1,.lang-ko_KR .connection-instructions .step2,.lang-zh_CN .connection-instructions .step1,.lang-zh_CN .connection-instructions .step2,.lang-zh_HK .connection-instructions .step1,.lang-zh_HK .connection-instructions .step2,.lang-zh_TW .connection-instructions .step1,.lang-zh_TW .connection-instructions .step2{font-size:.8em}.lang-de_DE .action-tile .content .title,.lang-el_GR .action-tile .content .title,.lang-es_ES .action-tile .content .title,.lang-es_MX .action-tile .content .title,.lang-fr_FR .action-tile .content .title,.lang-fr_CA .action-tile .content .title,.lang-ko_KR .action-tile .content .title,.lang-nl_NL .action-tile .content .title,.lang-pl_PL .action-tile .content .title,.lang-pt_BR .action-tile .content .title,.lang-pt_PT .action-tile .content .title,.lang-ru_RU .action-tile .content .title,.lang-uk_UA .action-tile .content .title{font-size:2em}.lang-it_IT .action-tile .content .title{font-size:1.8em}.lang-es_ES .action-tile .improve-yt-tile .title,.lang-fr_CA .action-tile .history-tile .title,.lang-fr_FR .action-tile .history-tile .title,.lang-de_DE .action-tile .terms-tile .title,.lang-fr_CA .action-tile .terms-tile .title,.lang-fr_FR .action-tile .terms-tile .title{font-size:1.7em}.lang-es_ES .action-tile .videoinfo-tile .title,.lang-es_MX .action-tile .videoinfo-tile .title,.lang-fr_CA .action-tile .videoinfo-tile .title,.lang-fr_FR .action-tile .videoinfo-tile .title,.lang-pt_BR .action-tile .videoinfo-tile .title{font-size:1.5em;white-space:normal}.lang-de_DE .action-tile .videoinfo-tile .title{font-size:1.45em;padding-left:.5em;padding-right:.5em;white-space:normal}.lang-es_ES .action-tile .videoinfo-tile .label,.lang-es_MX .action-tile .videoinfo-tile .label,.lang-fr_CA .action-tile .videoinfo-tile .label,.lang-fr_FR .action-tile .videoinfo-tile .label,.lang-pt_BR .action-tile .videoinfo-tile .label{padding-top:.6em}.lang-de_DE .action-tile .videoinfo-tile .label{font-size:1.6em;padding-top:.7em}.lang-ja_JP .action-tile .terms-tile .title{font-size:2em}.lang-ja_JP #transliteration .list{font-size:1.2em}.lang-ja_JP #keyboard-grid{font-size:1.5em}.lang-ja_JP #keyboard-spacebar{margin-left:5.5em}.lang-zh_CN #search .horizontal-list,.lang-zh_HK #search .horizontal-list,.lang-zh_TW #search .horizontal-list,.lang-ja_JP #search .horizontal-list{-o-transform:translateY(9.5em);-webkit-transform:translateY(9.5em);transform:translateY(9.5em)}.lang-ko_KR #search .horizontal-list{-o-transform:translateY(10.5em);-webkit-transform:translateY(10.5em);transform:translateY(10.5em)}.lang-ko_KR #search-keyboard{font-size:1.82em}.lang-ko_KR #letter-suggest .button{width:1em}.lang-ko_KR #keyboard-grid,.lang-ru_RU #keyboard-grid,.lang-uk_UA #keyboard-grid{margin-top:0.3em}.lang-ko_KR #keyboard-grid.lang-ko .numbers-toggle-tile.button,.lang-ru_RU #keyboard-grid.lang-ru .numbers-toggle-tile.button,.lang-uk_UA #keyboard-grid.lang-ua .numbers-toggle-tile.button{font-size:0.75em}.lang-ko_KR #keyboard-grid .button,.lang-ru_RU #keyboard-grid .button,.lang-uk_UA #keyboard-grid .button{height:1.2em;line-height:1.1em;margin-top:0.6em}.lang-ko_KR #letter-suggest .button,.lang-ru_RU #letter-suggest .button,.lang-uk_UA #letter-suggest .button{height:1.2em;line-height:1.1em;width:1.2em}.lang-ko_KR .search-state #spinner,.lang-ru_RU .search-state #spinner,.lang-uk_UA .search-state #spinner,.lang-ja_JP .search-state #spinner{top:25em}.lang-ko_KR .search-state .application-message,.lang-ru_RU .search-state .application-message,.lang-uk_UA .search-state .application-message,.lang-ja_JP .search-state .application-message{top:55%}.lang-ru_RU #keyboard-grid.lang-ru .button,.lang-uk_UA #keyboard-grid.lang-ua .button,.lang-ko_KR #keyboard-grid,.lang-ko_KR #letter-suggest,.lang-ko_KR #keyboard-spacebar{font-size:1em}.lang-ru_RU #keyboard-spacebar,.lang-uk_UA #keyboard-spacebar{margin-left:4.2em}.lang-de_DE .countdown-ad-callout .time-left-label,.lang-de_DE .countdown-ad-callout .skip-time-label{font-size:1.1em}.lang-cs_CZ .action-tile .description,.lang-de_DE .action-tile .description,.lang-hi_IN .action-tile .description,.lang-pl_PL .action-tile .description,.lang-pt_BR .action-tile .description,.lang-pt_PT .action-tile .description,.lang-ru_RU .action-tile .description,.lang-uk_UA .action-tile .description{font-size:1.3em}.lang-de_DE .guide-button.footer .guide-button-title{width:27.81em}.lang-de_DE .guide-user-name{width:13.5em}.lang-nl_NL .guide-button.disabled .guide-button-title,.lang-de_DE .guide-button.disabled .guide-button-title,.lang-fr_FR .guide-button.disabled .guide-button-title,.lang-pt_PT .guide-button.disabled .guide-button-title{width:13em}.lang-tr_TR #search #keyboard-grid .button.clear-query-tile,.lang-tr_TR .action-tile .title,.lang-tr_TR .guide-button-icon,.lang-tr_TR #keyboard-grid .button,.lang-tr_TR .tile-top .badge,.lang-tr_TR .tile-top .duration,.lang-tr_TR .title-card .badges span .lang-tr_TR.lang-case-sensitive .player-controls .button span:first-letter,.lang-tr_TR.lang-case-sensitive .player-controls .toggle-button span:first-letter,.lang-tr_TR.lang-case-sensitive .snap-controls .speakable span:first-letter,.lang-tr_TR.lang-case-sensitive .voice-command:first-letter{text-transform:none}.voice-command{display:none}.lang-case-sensitive .voice-command:first-letter{text-transform:uppercase}.engaged .voice-command{background-color:rgba(22,22,22,.7);color:#5dc21e;display:block;font-size:1em}.engaged .horizontal-list .carousel .voice-command{display:none}.engaged .horizontal-list.focused .carousel .voice-command{display:block}.engaged .pivot-video-tile .voice-command,.engaged .pivot-channel-tile .voice-command{display:none}.engaged .pivot-video-tile.speakable .voice-command,.engaged .pivot-channel-tile.speakable .voice-command{display:block}.engaged .video-tile .voice-command,.engaged .pivot-video-tile .voice-command,.engaged .pivot-channel-tile .voice-command,.engaged .playlist-tile .voice-command,.engaged .channel-tile .voice-command{bottom:50%;font-size:1.5em;margin-top:-2.17em;padding:.5em .9em;opacity:0.999}.engaged .video-tile.disabled .voice-command,.engaged .pivot-video-tile.disabled .voice-command,.engaged .pivot-channel-tile.disabled .voice-command{display:none}.engagement-indicator{bottom:0.8em;display:none;font-size:1.5em;left:1.8em;position:absolute;width:16em}.engaged .engagement-indicator{background-color:transparent;color:#5dc21e;display:block}.engagement-indicator .icon{background:no-repeat center;display:inline-block;height:2em;vertical-align:middle;width:2em}.engagement-indicator .stop-listening{padding:.5em}.engagement-indicator .stop-listening .icon{background-image:url('img/icon-xboxone-engaged.png')}.engagement-indicator .text{text-align:center}.engagement-indicator .title{display:inline-block;font-size:0.9em}.browse-sets-state.engaged .engagement-indicator,.browse-state.engaged .engagement-indicator,.post-play-state.engaged .engagement-indicator,.post-play-state.engaged .engagement-indicator,.settings-state.engaged .engagement-indicator,.search-state.engaged .engagement-indicator{display:block}.watch-state.engaged .engagement-indicator{display:block;height:3em;left:0;margin-left:auto;margin-right:auto;right:0;text-align:center;top:20%}.watch-focused .engagement-indicator .stop-listening{background-color:rgba(22,22,22,.7)}.sliding-highlighter .select,.engaged .legend-item,.engaged #dialog .speakable.button,.engaged .context-menu .speakable.button,.engaged .speakable.action-tile .title,.engaged .modify-video .speakable,.engaged .modify-video .speakable.focused{color:#5dc21e}.voice-footer{background-color:rgba(22,22,22,.7);bottom:0;color:#5dc21e;font-size:1.5em;height:3em;padding:1em 0 0.6em 0;position:absolute;text-align:center;width:100%}.voice-footer .list{font-size:0.65em;margin:auto;margin-top:-1.3em;padding-top:1em;width:29em}.voice-footer .component{display:inline-block;padding-right:1em}.engaged .voice-footer{color:#5dc21e}.engaged .voice-footer li{display:inline;padding:0 2%}.engaged .player-controls .button span,.engaged .player-controls .toggle-button span{color:#5dc21e;display:block}.engaged .player-controls .button.disabled span,.engaged .player-controls .toggle-button.disabled span{display:none}.engaged #transport-controls.ad-active .player-controls #button-list div.skip-ad-button.canskip .label,.engaged .skip-ad-button.canskip .label{color:#5dc21e}.engaged .player-controls-widget{margin-top:7.4em}.engaged .player-controls .voice-command.transport{top:1em}.legend{bottom:5.5%;color:#f1f1f1;position:absolute;right:5.5%;text-shadow:2px 2px 4px #000;display:none;background:-webkit-radial-gradient(ellipse closest-side,rgba(0,0,0,0.2) 25%,rgba(0,0,0,0.1) 60%,rgba(0,0,0,0));background:-o-radial-gradient(ellipse closest-side,rgba(0,0,0,0.2) 25%,rgba(0,0,0,0.1) 60%,rgba(0,0,0,0));background:-moz-radial-gradient(ellipse closest-side,rgba(0,0,0,0.2) 25%,rgba(0,0,0,0.1) 60%,rgba(0,0,0,0));background:radial-gradient(ellipse closest-side,rgba(0,0,0,0.2) 25%,rgba(0,0,0,0.1) 60%,rgba(0,0,0,0))}.limited-memory .legend{background:none}.legend-item{cursor:pointer;display:none;margin:0 0 0 .5em}.legend-item span{vertical-align:middle}.legend-item .icon{background-size:100%;display:block;height:2.5em;margin:auto;max-width:100%;text-align:center;width:2.5em}.legend-item.more>.icon.icon-player-more{background-size:0}.legend-item.more>.icon:before{font-family:'youtube-icons';color:#fff;font-size:1.9em;margin:auto;position:relative;top:.2em}.legend-item .title{display:block;font-size:1.1em;margin-top:0;text-align:center;text-transform:none}#legend.back .back,#legend.close-guide .close-guide,#legend.delete .delete,#legend.exit .exit,#legend.guide .guide,#legend.search .search,#legend.space .space,#legend.home .home,#legend.modify .modify,#legend.more .more,.reversed-keys #legend.back .reversed-back{display:inline-block}.reversed-keys #legend.back .back{display:none}.desktop .legend,.game-console .legend,.tv .legend{display:inline-block}.wiiu .legend{font-size:1.2em}.desktop .legend-item .icon{background-image:url(img/legend-sprite-desktop.png)}.game-console.sony .legend-item .icon{background-image:url(img/legend-sprite-ps3.png)}.roku #legend .legend-item .icon{background-image:url(img/legend-sprite-roku.png)}.skip-ad-callout .icon,.tv .legend-item .icon{background-image:url(img/legend-sprite-tv.png)}.wiiu .legend-item .icon{background-image:url(img/legend-sprite-wiiu.png)}.wiiu #user-info-background{-webkit-transform:translateZ(0)}.wiiu #search .horizontal-list{top:30%;-webkit-transform:none;transform:none}.wiiu .search-state #spinner{top:20em}.xboxone .legend-item .icon{background-image:url(img/legend-sprite-xboxone.png)}.xbox360 .legend-item .icon{background-image:url(img/legend-sprite-xbox360.png)}.desktop .legend-item.back .icon,.desktop .legend-item.exit .icon{background-position:0 47.4%;background-size:240%}.desktop .legend-item.search .icon{background-position:0 100%;background-size:240%}.desktop .legend-item.close-guide .icon,.desktop .legend-item.guide .icon,.desktop .legend-item.home .icon,.desktop .legend-item.space .icon{background-position:0 73.7%;background-size:240%}.desktop .skip-ad-callout .icon{background-position:31% 67.5%;background-size:520%;width:6.6em}.game-console.sony .legend-item .icon,.tv .legend-item .icon,.wiiu .legend-item .icon{background-repeat:no-repeat;height:1.5em;position:relative;bottom:.5em;width:1.5em}.game-console.sony .legend-item.more>.icon:before,.tv .legend-item.more>.icon:before,.wiiu .legend-item.more>.icon:before{top:initial}.game-console.microsoft .legend-item{margin-left:1.4em}.game-console.microsoft .legend-item.back .icon,.game-console.microsoft .legend-item.exit .icon,.game-console.microsoft .legend-item.reversed-back .icon{background-position:0 27.5%}.game-console.microsoft .legend-item.search .icon,.game-console.microsoft .legend-item.space .icon{background-position:0 82%}.game-console.microsoft .legend-item.close-guide .icon,.game-console.microsoft .legend-item.delete .icon,.game-console.microsoft .legend-item.guide .icon,.game-console.microsoft .legend-item.home .icon,.game-console.microsoft .legend-item.modify .icon{background-position:0 54.9%}.roku #legend .legend-item.back .icon,.roku #legend .legend-item.exit .icon{background-position:0 105%}.game-console.sony .legend-item.back .icon,.game-console.sony .legend-item.exit .icon{background-position:0 0%}.game-console.sony .legend-item.reversed-back .icon{background-position:0 100%}.game-console.sony .legend-item.search .icon,.game-console.sony .legend-item.space .icon{background-position:0 87.5%}.game-console.sony .legend-item.close-guide .icon,.game-console.sony .legend-item.delete .icon,.game-console.sony .legend-item.guide .icon,.game-console.sony .legend-item.home .icon{background-position:0 75%}.game-console.sony #dialog .logout-authenticated-info,.game-console.microsoft #dialog .logout-authenticated-info{padding-top:0}.game-console.sony .action-tile .platform-container,.game-console.microsoft .action-tile .platform-container{margin:1em;text-align:center}.game-console.sony .login-user-info .platform-user-name,.game-console.sony .platform-user-name,.game-console.microsoft .login-user-info .platform-user-name,.game-console.microsoft .platform-user-name{vertical-align:middle}.game-console.sony .login-user-info .platform-user-icon,.game-console.sony .platform-user-icon,.game-console.microsoft .platform-user-icon,.game-console.microsoft .login-user-info .platform-user-icon{background-size:cover;display:inline-block;height:3em;vertical-align:middle;width:3em}.game-console.sony #dialog .login-user-info .platform-container>div,.game-console.microsoft #dialog .login-user-info .platform-container>div{font-size:1em}.wiiu .advertisement-callout,.wiiu .advertisement-info,.wiiu #leanback-player-container,.wiiu .skip-ad-button,.wiiu .title-card,.wiiu #watch,.wiiu .toaster{-h5vcc-target-screen:screen-all}.wiiu .pivot-shelf-list{opacity:1}.wiiu .legend-item.back .icon,.wiiu .legend-item.exit .icon{background-position:0 33.3%}.wiiu .legend-item.search .icon{background-position:0 100%}.wiiu .legend-item.close-guide .icon,.wiiu .legend-item.delete .icon,.wiiu .legend-item.guide .icon,.wiiu .legend-item.home .icon{background-position:0 66.7%}.wiiu .qr-code-wrapper{display:none}.wiiu #search .search-pairing{display:none}.wiiu #search-suggestions{font-size:1.6em;height:1.6em}.wiiu .search-state .application-message{top:35%}.tv .legend-item.guide .icon,.tv .legend-item.close-guide .icon,.tv .skip-ad-callout .icon{background-position:0 100%}.lg .legend-item.back,.lg .legend-item.exit{cursor:pointer}.tv .legend-item.back .icon,.tv .legend-item.exit .icon{background-position:0% 0%}.lg .legend-item.back .icon,.lg .legend-item.exit .icon{opacity:0.8}.lg .legend-item.back:hover .icon,.lg .legend-item.exit:hover .icon{opacity:1}body.samsung{background-color:transparent!important}body.lg{background-color:transparent!important;background-image:url(tv:)!important}body.limited-memory{background-color:#111}.limited-memory .bg,.eureka .bg{background-image:none;background-color:#2e2e2e}.limited-animation .loading-indicator,.opera .loading-indicator,.lg .loading-indicator{display:none}.limited-animation .fallback-loading-indicator,.opera .fallback-loading-indicator,.lg .fallback-loading-indicator{display:block}.limited-animation .video-tile .video-thumb{opacity:1}.limited-memory .video-tile .video-thumb{background-size:cover}.limited-memory .video-tile .video-thumb.preloaded{background-size:auto}.roku.limited-memory .video-tile .video-thumb{background-size:100%;opacity:1}.limited-animation.playlist-tile .count-overlay{background-color:#000}.search .placeholder-tile,.settings .placeholder-tile,.limited-animation .browse-content .list .placeholder-tile{height:24em;width:20.75em}.guide .placeholder-tile{width:100%;height:2em}.limited-animation .action-tile,.limited-animation .channel-tile,.limited-animation .playlist-tile,.limited-animation .auto-play-tile,.limited-animation .recent-search-tile,.limited-animation .video-tile,.limited-animation .browse-content .list .placeholder-tile,.search .placeholder-tile,.settings .placeholder-tile,.shelf .placeholder-tile{display:inline-block;margin-right:1.1em;position:relative;vertical-align:top}.limited-animation .shelves{margin-top:2.5%}.limited-animation .playlist-tile .overlay,.limited-animation .video-tile .overlay,.limited-memory .playlist-tile .overlay,.limited-memory .video-tile .overlay{opacity:1}.limited-memory .auto-play-tile .video-tile{margin:0}.limited-animation .auto-play-tile .post-play-countdown{top:-4em}.limited-animation .hide-background.video-tile .video-thumb{background-image:url(img/icon-playbutton.png)!important;background-repeat:no-repeat;opacity:1}.limited-animation .action-tile.focused .content{text-shadow:none}.limited-animation .post-play-countdown{text-shadow:none}.limited-animation #keyboard-grid .button.disabled,.limited-animation #keyboard-grid .button.focused,.limited-animation #letter-suggest .button{background-color:rgba(153,153,153,1)}.limited-animation #search #text-box-background,.limited-animation #search #search-text-entry{background-color:#000}.limited-animation #search-keyboard,.limited-animation #letter-suggest{text-shadow:none}.limited-animation #search-keyboard .disabled,.limited-animation #letter-suggest .button{color:#000;text-shadow:none}.limited-animation #letter-suggest .button.focused,.limited-animation #search-keyboard .button.focused{background-color:#e1e1e1;color:#212121}.limited-animation #transliteration .list .button{border-right-color:#f1f1f1}.limited-animation #transliteration .list .button.focused{background-color:rgba(153,153,153,1)}.limited-animation .toaster .toast-container{background-color:rgba(27,25,26,1)}.limited-animation .title-card,.limited-memory.limited-animation.sets-ui .title-card{background:#000;height:20%}.opera .focused,.opera :focus{outline:invert none medium}.eureka #browse-sets,.eureka #dialog .buttons,.eureka .legend,.eureka #transport-controls{display:none}#eureka-player-controls-container{display:none;position:absolute;top:17em;width:100%}.eureka #eureka-player-controls-container{display:block}.eureka .loading #eureka-player-controls-container{opacity:0}#eureka-player-controls{background-size:100%;border-radius:1em;height:11.5em;margin:0 auto;overflow:hidden;width:11.5em}.eureka #eureka-player-controls{opacity:0}@-webkit-keyframes showAndShrinkPause{from{-webkit-transform:scale(1.5);opacity:0}to{opacity:.7}}@-webkit-keyframes hideAndGrowPlay{from{opacity:.7}to{-webkit-transform:scale(1.5);opacity:0}}.eureka #watch.play #eureka-player-controls{background-image:url(img/player-play.png);-webkit-animation:hideAndGrowPlay linear 0.25s 0s 1 normal none}.eureka #watch.pause #eureka-player-controls{background-image:url(img/player-pause.png);-webkit-animation:showAndShrinkPause linear 0.25s 0s 1 normal none;opacity:.7}.xboxone .action-tile,.xboxone .legend-item.back,.xboxone .legend-item.delete,.xboxone .legend-item.exit,.xboxone .legend-item.home,.xboxone .legend-item.modify,.xboxone .legend-item.reversed-back,.xboxone .legend-item.search,.xboxone .player-controls div,.xboxone .auto-play-tile,.xboxone .video-stream,.xboxone .video-tile,.xboxone #browse-search-bar,.xboxone #guide.focused .guide-button,.xboxone #player-controls .item,.xboxone #snap-buttons>div{-h5vcc-gesturable:gesture-clickable}.xboxone #browse-sets{-h5vcc-gesturable:gesture-scroll-both}.xboxone #guide.focused .carousel{-h5vcc-gesturable:gesture-scroll-vertical}.xboxone .settings-shelf{-h5vcc-gesturable:gesture-scroll-horizontal}.xboxone #transliteration .button:hover,.xboxone #keyboard-grid .button:hover{background:none;cursor:default}.search-hint{display:none}.xboxone .search-hint,.xbox360 .search-hint{color:#6b6b6b;display:block;font-size:1.4em;line-height:2em}.context-menu-defocuser{background-color:rgba(0,0,0,0.5);height:100%;left:0;position:absolute;top:0;width:100%}.context-menu-list{background-color:#000;height:initial;left:50%;padding-top:2.5em;position:relative;top:50%;-moz-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);-o-transform:translate(-50%,-50%);-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);width:30%}.context-menu-list .button{-h5vcc-gesturable:gesture-clickable;border:#000 solid;border-width:0.5em 1em 0.5em 1em;color:#e1e1e1;cursor:pointer;font-family:roboto-regular;font-size:1.5em;height:auto;line-height:2.5em;margin:0;text-align:left;text-indent:1em;transition-duration:200ms;transition-property:background-color,color;transition-timing-function:cubic-bezier(0.4,0,0.2,1);-webkit-transition-duration:200ms;-webkit-transition-property:background-color,color;-webkit-transition-timing-function:cubic-bezier(0.4,0,0.2,1)}.context-menu-list .button:before{font-family:youtube-icons;padding-right:1em}.context-menu-list .button.icon-platform-switch-users{background:#1f1f1f url() no-repeat;background-position:0.5em center;background-size:2em 2em;border:solid #1f1f1f;border-width:2em 1em 2em 1em;height:initial;line-height:initial;margin-top:1em;padding:0.5em 0 0.5em 3em;text-indent:0}.context-menu-list .button.focused{background-color:#e1e1e1;color:#000}.call-to-cast{display:none}.call-to-cast.focused{bottom:0;display:block;left:0;position:absolute;right:0;top:0}.call-to-cast-text{color:#f1f1f1;font-weight:normal;text-shadow:#000 .06em .06em;width:38%}h2.call-to-cast-text{font-size:3.2em;margin-bottom:0.3em;margin-top:0;padding-top:1.5em}h3.call-to-cast-text{font-size:1.7em}.call-to-cast .end-screen{background-position:center center;background-repeat:no-repeat;background-size:cover;display:none;height:100%}.call-to-cast .end-screen.active{display:block}.call-to-cast .end-screen .call-to-cast-text{color:#fff;width:40%}.call-to-cast .end-screen .call-to-cast-text em{color:#0090ff;font-style:normal}.call-to-cast .end-screen h2.call-to-cast-text{margin-bottom:0.5em;padding-top:2em}.call-to-cast .end-screen h3.call-to-cast-text{line-height:1.5em}.call-to-cast .end-screen.left .call-to-cast-text{margin-left:5%}.call-to-cast .end-screen.right .call-to-cast-text{margin-left:50%}.call-to-cast .end-screen .yt-logo,.call-to-cast .end-screen .yt-kids-logo{background-image:url(img/call-to-cast-yt-logo.png);background-repeat:no-repeat;background-size:contain;bottom:8%;height:13.88%;position:fixed;width:100%}.call-to-cast .end-screen.left .yt-logo,.call-to-cast .end-screen.left .yt-kids-logo{background-position:left center;left:4%}.call-to-cast .end-screen.right .yt-logo,.call-to-cast .end-screen.right .yt-kids-logo{background-position:right center;right:4%}.call-to-cast .end-screen .yt-kids-logo{background-image:url(img/yt-kids-logo.png);height:20%}.call-to-cast .end-screen.multi-user{background-image:url(img/call-to-cast-end-screen-multi-user.jpg)}.call-to-cast .end-screen.yt-mix{background-image:url(img/call-to-cast-end-screen-yt-mix.jpg)}.call-to-cast .end-screen.tv-queue{background-image:url(img/call-to-cast-end-screen-tv-queue.jpg)}.call-to-cast .end-screen.kids-promo{background-image:url(img/call-to-cast-end-screen-kids-promo.jpg)}.call-to-cast .end-screen.kids-mother-goose{background-image:url(img/call-to-cast-end-screen-kids-mother-goose.jpg)}.call-to-cast .end-screen.kids-rainbow{background-image:url(img/call-to-cast-end-screen-kids-rainbow.jpg)}.call-to-cast .end-screen.kids-sesame{background-image:url(img/call-to-cast-end-screen-kids-sesame.jpg)}.call-to-cast .end-screen.kids-talking-tom{background-image:url(img/call-to-cast-end-screen-kids-talking-tom.jpg)}.call-to-cast .end-screen.kids-wonderquest{background-image:url(img/call-to-cast-end-screen-kids-wonderquest.jpg)}.call-to-cast .THEME-cl.end-screen.kids-promo h2.call-to-cast-text{width:80%}.call-to-cast .THEME-k.end-screen h3.call-to-cast-text{font-size:3em;line-height:1.4em;margin-top:0;padding-top:10%;padding-left:5%;width:45%}.call-to-cast .end-screen.gaming-heart{background-image:url(img/call-to-cast-end-screen-gaming-heart.jpg)}.call-to-cast .THEME-g.end-screen h3.call-to-cast-text{font-size:2.2em;padding-top:0%;width:100%}.call-to-cast .end-screen.loki{background-image:url(img/call-to-cast-end-screen-loki.jpg)}.call-to-cast .THEME-up.end-screen h3.call-to-cast-text{font-size:2.2em;margin-left:0%;padding-top:17em;text-align:center;width:100%}.call-to-cast .THEME-m.end-screen h2.call-to-cast-text{font-size:2.2em;margin-bottom:0;text-align:center;width:100%}.call-to-cast .THEME-m.end-screen h3.call-to-cast-text{margin-top:0;text-align:center;width:100%}.call-to-cast .THEME-m.end-screen.music-ready{background-image:url(img/call-to-cast-music.jpg)}.call-to-cast .THEME-m.end-screen.music-ready .call-to-cast-logo{background:url(img/yt-music-logo.png) no-repeat center bottom;height:60%}.call-to-cast .THEME-m.end-screen.music-ready h2.call-to-cast-text{padding-top:10%}.call-to-cast .THEME-m.end-screen.music-party{background-image:url(img/call-to-cast-music.jpg);height:100%}.call-to-cast .THEME-m.end-screen.music-party .call-to-cast-logo{background:url(img/call-to-cast-music-party-logo.png) no-repeat center bottom;height:55%}.call-to-cast .THEME-m.end-screen.music-party .footer{background:url(img/yt-music-logo-small.png) no-repeat center top;height:10%}.snap-controls{height:90%;padding:.5em;position:relative}.snapped.blurred #snap-buttons,.snapped.blurred #unsupported-mode,.snapped.blurred #ad-callout,.snapped.blurred .logo-container,.snapped.blurred .title-card,.snapped.blurred .up-next{opacity:.25!important}.snapped #dialog,.snapped #guide,.snapped #search,.snapped #settings,.snapped #title-tray,.snapped #transport-controls,.snapped .ad-showing .video-ads,.snapped .advertisement-info,.snapped .application-message,.snapped .browse,.snapped .browse-sets,.snapped .caption-window,.snapped .countdown-ad-callout,.snapped .html5-video-info-panel,.snapped .legend,.snapped .player-video-avatar,.snapped .quality-status,.snapped .skip-ad-button,.snapped .skip-ad-callout,.snapped .toaster,.snapped.blurred.browse-sets-state .title-card,.snapped.blurred.search-state .title-card,.snapped.blurred.settings-state .title-card,.snapped.dialog-focused #snap-progress-bar,.snapped.dialog-focused #watch{display:none!important}.snapped .advertisement-tooltip{color:#a0a0a0;font-size:.4em;left:0;top:0}.snapped .advertisement-tooltip .remaining_duration{color:#717171}.snapped #ad-callout{left:5%;top:18%}.snapped .debug-watermark{font-size:.2em;width:100%}#app-markup.snapped{background-color:#231f20}.snapped #background{display:none}.snapped{font-size:2em}.snapped.watch-state .logo-container{opacity:inherit}.snapped .icon-youtube-logo:before{content:''}.snap-controls .logo-container{background:url(img/yt-logo-fullcolor.png) no-repeat center top;display:inherit;height:2.5em;left:0;position:absolute;right:0;top:5%}.snapped .ad-video,.snapped .ad-created .video-stream{height:270px!important;width:480px!important}.snapped .video-stream,.snapped .html5-video-content{-webkit-transform:scale(.9)!important;max-height:5.6em;top:4.4em!important}.snapped .html5-video-controls{top:9.8em!important}.snapped .player-video-title{color:#a0a0a0;font-size:.7em;line-height:1.1em;margin:0;max-height:2.2em;white-space:normal;width:12em}.snapped .player-meta{left:0;margin:0;position:inherit;top:0}.snapped .player-meta .player-video-text{padding-left:0}.snapped .player-meta .player-video-details{color:#717171;font-size:.5em;line-height:1.1em}.snapped .player-meta .player-video-details>div{margin-left:0}.snapped .player-video-details .uploaded-date,.snapped .player-video-details .set-context,.snapped .player-video-details .view-count{font-size:.9em;margin-top:0}.watch-state.snapped #snap-progress-bar{display:block}#snap-progress-bar{background-position:top left;display:none;height:.1em;left:0;margin-top:9.25em;padding:0;position:relative;top:0;width:100%}#snap-progress-bar .progress-bar-disc,#snap-progress-bar .progress-bar-playhead{display:none}#snap-progress-bar div{height:5px;top:0}.snapped .title-card{background:none;border:none;height:initial;padding-top:.3em;position:inherit}#unsupported-mode{color:#fff;font-size:.9em;line-height:1.2em;padding:80% 1em 0;width:8em}.snap-controls .mute{background-image:url(img/icon-mute.png)}.snap-controls .mute.toggle-selected{background-image:url(img/icon-unmute.png)}.snap-controls .fullscreen{background-image:url(img/icon-fullscreen.png)}.snapped .loading-indicator{height:5em;width:5em}.snapped #spinner{top:19%;-o-transform:scale(.5);-webkit-transform:scale(.5);transform:scale(.5)}.engaged.snapped .engagement-indicator{display:inline-block;font-size:.6em!important;left:0;margin-left:auto;margin-right:auto;position:absolute;right:0;text-align:center;top:4.2em!important}.engaged.snapped .engagement-indicator .stop-listening{background:transparent}.snap-controls #snap-buttons{bottom:0;position:absolute}.snap-controls #snap-buttons .focused,.snap-controls #snap-buttons :hover{-webkit-border-radius:.15em;background-color:#fff;color:#000}.snap-controls #snap-buttons .button,.snap-controls #snap-buttons .toggle-button{display:inline-block;font-size:.8em;height:1em;margin-left:.5em;padding:1em;position:relative;text-align:center;top:0;width:1em}.snap-controls #snap-buttons div{color:#fff;cursor:pointer;vertical-align:middle}.snap-controls #snap-buttons div.disabled:hover{background-color:transparent;color:#fff}.snap-controls #snap-buttons div.focused{opacity:1}.snap-controls #snap-buttons div.disabled{opacity:.2}.snap-controls .speakable span,.snap-controls .disabled span{display:none}.engaged .snap-controls .speakable:not(.disabled) span{color:#5dc21e;display:block;font-size:.6em;left:0;overflow:hidden;pointer-events:none;position:absolute;text-align:center;top:-1.5em;width:100%;word-break:break-all}.lang-case-sensitive .snap-controls .speakable span:first-letter{text-transform:uppercase}.snap-controls .icon-player-play{font-family:'youtube-icons'}.snap-controls .icon-mute,.snap-controls .icon-fullscreen{background-position:center center;background-repeat:no-repeat;background-size:3em}.snap-controls .icon-mute,.snap-controls .icon-mute.disabled{background-image:url(img/button-unmute-active.png)}.snap-controls .icon-mute.focused,.snap-controls .icon-mute:hover:not(.disabled){background-image:url(img/button-unmute-onhover-active.png)}.snap-controls .icon-mute.toggle-selected{background-image:url(img/button-mute-active.png)}.snap-controls .icon-mute.toggle-selected.focused,.snap-controls .icon-mute.toggle-selected:hover{background-image:url(img/button-mute-onhover-active.png)}.snap-controls .icon-fullscreen{background-image:url(img/button-fullscreen-active.png)}.snap-controls .icon-fullscreen.focused,.snap-controls .icon-fullscreen:hover{background-image:url(img/button-fullscreen-onhover-active.png)}.up-next{height:3em;padding-top:1em}.up-next div{color:#a0a0a0;font-size:.6em}.up-next .video-title{height:1.2em;line-height:1.2em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}.up-next .video-thumb{background:no-repeat center/100%;display:inline-block;height:100%;margin-top:.2em;max-height:2.5em;vertical-align:top;width:5em}#browse-sets{background-color:#222;height:100%;left:0;overflow:hidden;position:absolute;right:0}#browse-sets.no-background,.limited-memory #browse-sets{background-color:rgba(0,0,0,0)}#browse-search-bar{background-color:rgba(153,153,153,.2);cursor:pointer;height:3em;left:8em;margin-right:18em;position:absolute;right:2.5em;top:2.5em}.limited-animation #browse-search-bar{background-color:#4f575a}#browse-search-bar.focused,#browse-search-bar:hover{background:#fff}#browse-search-bar .icon{color:rgba(255,255,255,.4);display:block;font-family:'youtube-icons';font-size:1.8em;margin:0;padding:.35em 0 0 .5em;text-align:left}.limited-animation #browse-search-bar .icon{color:#e1e1e1}.youtube-logo-top{height:3.4em;position:absolute;right:9.5em;top:2.3em;width:8.4em;font-family:'youtube-icons'}#browse-sets.has-header-content .youtube-logo-top{display:none}.youtube-logo:before{color:rgba(153,153,153,.5);display:block;font-size:3.4em}.youtube-unlimited-logo:before{color:rgba(153,153,153,.5);display:none;font-size:3.4em;position:relative;right:.5em}.unlimited .youtube-logo:before{display:none}.unlimited .youtube-unlimited-logo:before{display:block}.limited-animation .youtube-unlimited-logo:before,.limited-animation .youtube-logo:before{color:#4f575a}#browse-search-bar.focused .icon,#browse-search-bar:hover .icon{color:#444}#platform-user-icon{background-position:center;background-repeat:no-repeat;background-size:contain;height:4em;position:absolute;right:3em;top:2em;width:4em}#browse-header{background-position:0 -8em;background-size:cover;height:60%;position:relative}.limited-memory.limited-animation #browse-header{background-position:6em 0;background-repeat:no-repeat;background-size:contain}.no-background #browse-header{background-image:none!important}.browse-sets #browse-header.collapsed{-o-transform:translateY(-27%);-webkit-transform:translateY(-27%);transform:translateY(-27%)}.limited-memory .browse-sets #browse-header.collapsed{top:-7em;-o-transform:none;-webkit-transform:none;transform:none}#browse-header .title{color:#e1e1e1;display:inline-block;font-size:2.25em;margin-bottom:-.23em;overflow:hidden;text-overflow:ellipsis;-o-transform-origin:left;-webkit-transform-origin:left;transform-origin:left;white-space:nowrap;width:23.7em}#browse-header.one-button .title{width:18.7em}#browse-header.two-buttons .title{width:14em}#browse-header.collapsed .title{overflow:visible;-o-transform:scale(.8,.8) translateY(-5em) translateX(-1.5em);-webkit-transform:scale(.8,.8) translateY(-5em) translateX(-1.5em);transform:scale(.8,.8) translateY(-5em) translateX(-1.5em)}.browse-header-gradient{background:-o-linear-gradient(top,rgba(34,34,34,0) 0%,rgba(34,34,34,0) 15%,rgba(34,34,34,1) 100%);background:-webkit-linear-gradient(top,rgba(34,34,34,0) 0%,rgba(34,34,34,0) 15%,rgba(34,34,34,1) 100%);background:linear-gradient(to bottom,rgba(34,34,34,0) 0%,rgba(34,34,34,0) 15%,rgba(34,34,34,1) 100%);height:100%;width:100%}.limited-memory .browse-header-gradient{display:none}.no-background .browse-header-gradient{visibility:hidden}.browse-header-metadata{left:8em;position:absolute;-o-transform:translateZ(0);-webkit-transform:translateZ(0);transform:translateZ(0)}.limited-memory.limited-animation .browse-header-metadata{top:11.6em}.limited-memory.limited-animation #browse-header.collapsed .browse-header-metadata{font-size:inherit;left:8em;top:11em}.limited-memory.limited-animation #browse-header.collapsed .browse-header-metadata .browse-header-avatar{height:4em;margin-right:1em;width:4em}.browse-header-avatar{background-size:contain;display:inline-block;height:5em;margin-right:1.3em;-o-transform-origin:left;-webkit-transform-origin:left;transform-origin:left;width:5em}#browse-header.collapsed .browse-header-avatar{-o-transform:scale(.61,.61) translateY(-13.5em);-webkit-transform:scale(.61,.61) translateY(-13.5em);transform:scale(.61,.61) translateY(-13.5em)}#browse-header.collapsed .browse-header-button-bar{-o-transform:translateY(-6.25em);-webkit-transform:translateY(-6.25em);transform:translateY(-6.25em);opacity:0}.browse-header-button-bar{background:rgba(0,0,0,.4);border-radius:.15em;font-size:1.1em;height:2.4em;margin-bottom:-.59em;padding:.59em;position:absolute;right:3.5em}.limited-animation .browse-header-button-bar{background:#1f2426}.limited-memory.limited-animation .browse-header-button-bar{top:13em}.browse-header-button-bar,.browse-header-metadata{bottom:3.9em}.browse-header-button-bar .button{border-radius:.12em;color:#e1e1e1;cursor:default;display:inline-block;height:2.4em;min-width:8.2em;overflow:hidden;padding-right:1em;white-space:nowrap}.browse-header-button-bar .button span{line-height:2.4em;vertical-align:middle}.browse-header-button-bar .button.focused,.browse-header-button-bar .button.focused:hover{background:#e1e1e1;color:#212121}.browse-header-button-bar .button:hover{background-color:#666}.browse-header-button-bar .button .icon{display:inline-block;font-family:'youtube-icons';height:2.4em;margin:0 1em 0 1em}.browse-header-subscribe .icon:before{font-size:2em}.browse-header-subscribe.toggle-selected .icon:before{content:"\00e602";font-size:1em}.browse-header-subscribe.toggle-selected.focused{color:#ce292d}.browse-header-subscribe.disabled{background-color:rgba(0,0,0,0)}.browse-content{height:80%;left:8em;position:absolute;top:14.5%;width:100%}.browse-sets.collapsed .browse-content{-o-transform:translateY(44%);-webkit-transform:translateY(44%);transform:translateY(44%)}.limited-memory .browse-sets.collapsed .browse-content{top:20em;-o-transform:none;-webkit-transform:none;transform:none}#browse-header,.browse-header-avatar,.browse-header-button-bar,.browse-content,#browse-header .title{-o-transform:translateZ(0);-webkit-transform:translateZ(0);transform:translateZ(0);-o-transition:-o-transform .25s;-webkit-transition:-webkit-transform .25s;transition:-webkit-transform .25s}.browse-header-button-bar{-o-transition:opacity .25s -o-transform .25s;-webkit-transition:opacity .25s,-webkit-transform .25s;transition:opacity .25s,transform .25s}.limited-animation #browse-header,.limited-animation .browse-header-avatar,.limited-animation #browse-header.collapsed .browse-header-avatar,.limited-animation .browse-content,.limited-animation .browse-header-button-bar,.limited-animation #browse-header .title,.limited-animation .browse-content .shelves,.limited-animation .browse-header-metadata,.limited-animation .shelf #content-container,.limited-animation .shelves>.title,.limited-animation .shelf>.title,.limited-animation .horizontal-list>.content,.limited-animation .horizontal-list,.limited-animation .shelves .carousel{-o-transition:all 0;-webkit-transition:none;transition:none;-o-transform:none;-webkit-transform:none;transform:none}.limited-animation #browse-header.collapsed .browse-header-metadata{font-size:.6em;left:13.25em;top:17.75em}.limited-animation #browse-header.collapsed .browse-header-metadata .title{font-size:3em}.limited-memory #browse-header.collapsed .browse-header-metadata .title{font-size:1.8em}.limited-animation .browse-content .list{margin-left:-9.5em;width:126em}.limited-animation .browse-content .shelf>.title{margin-left:6em}.limited-animation.sets-ui .action-tile:not(.focused),.limited-animation.sets-ui .auto-play-tile:not(.focused) .video-tile,.limited-animation.sets-ui .channel-tile:not(.focused),.limited-animation.sets-ui .playlist-tile:not(.focused),.limited-animation.sets-ui .recent-search-tile:not(.focused),.limited-animation.sets-ui .video-tile:not(.focused),.roku.limited-animation.sets-ui .action-tile:hover:not(.focused),.roku.limited-animation.sets-ui .auto-play-tile:hover:not(.focused) .video-tile,.roku.limited-animation.sets-ui .channel-tile:hover:not(.focused),.roku.limited-animation.sets-ui .playlist-tile:hover:not(.focused),.roku.limited-animation.sets-ui .video-tile:hover:not(.focused){background-color:#212121}.limited-animation.sets-ui .action-tile:hover:not(.focused),.limited-animation.sets-ui .auto-play-tile:hover:not(.focused) .video-tile,.limited-animation.sets-ui .channel-tile:hover:not(.focused),.limited-animation.sets-ui .playlist-tile:hover:not(.focused),.limited-animation.sets-ui .recent-search-tile:hover:not(.focused),.limited-animation.sets-ui .video-tile:hover:not(.focused){background-color:#414141}.browse-content .shelves{margin-left:0em;-o-transform:translateZ(0);-webkit-transform:translateZ(0);transform:translateZ(0)}.browse-content .shelves>.no-content-message,.browse-content .horizontal-list>.no-content-message{margin-left:-8em}.shelves>.no-content-message,.horizontal-list>.no-content-message{display:none;position:absolute;top:8em;width:100%}.shelves.no-content>.no-content-message,.horizontal-list.no-content>.no-content-message{display:block}.shelves>.no-content-message .text,.horizontal-list>.no-content-message .text{color:#f1f1f1;font-size:1.8em;text-align:center;text-shadow:#000 .04em .04em}.shelf{width:100%}.limited-animation .shelf{margin-bottom:1.8em}.carousel .shelf{position:absolute}.shelf #content-container{-o-transform:translateZ(0);-webkit-transform:translateZ(0);transform:translateZ(0)}.shelves>.title,.shelf>.title{color:#999;font-size:1.6em;margin-bottom:1.0em;margin-top:.2em;-o-transform:translateZ(0);-webkit-transform:translateZ(0);transform:translateZ(0);white-space:nowrap}.shelves>.title,.shelf.selected>.title{color:#fff}.shelf>.title .annotation{color:#777;font-size:70%;margin-left:.5em}.shelf.selected>.title .annotation{color:#ddd}.horizontal-list.no-model,.shelf.no-model,.survey-shelf.no-model{display:none}.shelf>.icon{display:none}.horizontal-list>.content{font-size:79%;height:26em;opacity:1;-o-transform:translateZ(0);-webkit-transform:translateZ(0);transform:translateZ(0)}.horizontal-list.focused>.content{opacity:1}.horizontal-list,.shelves .carousel,.browse-header-metadata{-o-transform:translateZ(0);-webkit-transform:translateZ(0);transform:translateZ(0)}.shelf0to0{opacity:1;-webkit-transform:translateY(0%) scale(1);-o-transform:translateY(0%) scale(1)}@-webkit-keyframes shelf0to1-anim{from{-webkit-transform:translateY(0%)}to{-webkit-transform:translateY(100%)}}@-o-keyframes shelf0to1-anim{from{-o-transform:translateY(0%)}to{-o-transform:translateY(100%)}}.shelf0to1{-webkit-animation:shelf0to1-anim 200ms forwards;-o-animation:shelf0to1-anim 200ms forwards}@-webkit-keyframes shelf0to2-anim{from{opacity:1;-webkit-transform:translateX(0%) translateY(0%) scale(1.0)}100%{opacity:0;-webkit-transform:translateX(-2%) translateY(-11%) scale(0.75)}}@-o-keyframes shelf0to2-anim{from{opacity:1;-o-transform:translateX(0%) translateY(0%) scale(1.0)}100%{opacity:0;-o-transform:translateX(-2%) translateY(-11%) scale(0.75)}}.shelf0to2{-webkit-animation:shelf0to2-anim 200ms forwards;-o-animation:shelf0to2-anim 200ms forwards}@-webkit-keyframes shelf1to0-anim{from{-webkit-transform:translateX(0%) translateY(100%)}to{-webkit-transform:translateX(0%) translateY(0%)}}@-o-keyframes shelf1to0-anim{from{-o-transform:translateX(0%) translateY(100%)}to{-o-transform:translateX(0%) translateY(0%)}}.shelf1to0{-webkit-animation:shelf1to0-anim 200ms forwards;-o-animation:shelf1to0-anim 200ms forwards}.shelf1to1{opacity:1;-webkit-transform:translateX(0%) translateY(100%) scale(1);-o-transform:translateX(0%) translateY(100%) scale(1)}@-webkit-keyframes shelf1to2-anim{from{-webkit-transform:translateX(0%) translateY(100%)}99%{-webkit-transform:translateX(0%) translateY(200%)}100%{opacity:0;-webkit-transform:translateX(-2%) translateY(-11%) scale(0.75)}}@-o-keyframes shelf1to2-anim{from{-o-transform:translateX(0%) translateY(100%)}99%{-o-transform:translateX(0%) translateY(200%)}100%{opacity:0;-o-transform:translateX(-2%) translateY(-11%) scale(0.75)}}.shelf1to2{-webkit-animation:shelf1to2-anim 200ms forwards;-o-animation:shelf1to2-anim 200ms forwards}@-webkit-keyframes shelf2to0-anim{from{opacity:0;-webkit-transform:translateX(-2%) translateY(-11%) scale(0.75)}to{opacity:1;-webkit-transform:translateX(0%) translateY(0%) scale(1.0)}}@-o-keyframes shelf2to0-anim{from{opacity:0;-o-transform:translateX(-2%) translateY(-11%) scale(0.75)}to{opacity:1;-o-transform:translateX(0%) translateY(0%) scale(1.0)}}.shelf2to0{-webkit-animation:shelf2to0-anim 200ms forwards;-o-animation:shelf2to0-anim 200ms forwards}@-webkit-keyframes shelf2to1-anim{from{opacity:1;-webkit-transform:translateX(0%) translateY(200%)}to{opacity:1;-webkit-transform:translateX(0%) translateY(100%)}}@-o-keyframes shelf2to1-anim{from{opacity:1;-o-transform:translateX(0%) translateY(200%)}to{opacity:1;-o-transform:translateX(0%) translateY(100%)}}.shelf2to1{-webkit-animation:shelf2to1-anim 200ms forwards;-o-animation:shelf2to1-anim 200ms forwards}.shelf2to2{opacity:0;-webkit-transform:translateX(-2%) translateY(-11%) scale(0.75);-o-transform:translateX(-2%) translateY(-11%) scale(0.75)}.limited-memory .shelves .list .video-tile:nth-child(1) .video-thumb,.limited-memory .shelves .list .channel-tile:nth-child(1) .video-thumb,.limited-memory.sets-ui #search .horizontal-list .list .video-tile:nth-child(1) .video-thumb,.limited-memory.sets-ui #search .horizontal-list .list .channel-tile:nth-child(1) .video-thumb,.limited-memory.sets-ui #browse .list .video-tile:nth-child(1) .video-thumb,.limited-memory.sets-ui #browse .list .channel-tile:nth-child(1) .video-thumb,.limited-memory.sets-ui #browse .list .video-tile:last-child .video-thumb,.limited-memory.sets-ui #browse .list .channel-tile:last-child .video-thumb{background:none!important}.survey-shelf{position:absolute}.survey-shelf>.title{color:#fff;display:inline-block;font-size:1.6em;margin-bottom:1.0em;margin-top:0.2em}.survey-shelf .action-tile .content>.title{display:none}.survey-shelf .horizontal-list>.content{font-size:79%;height:26em}.survey-shelf .description{color:#fff;visibility:visible}.survey-shelf .button{display:inline-block;margin-bottom:1em;margin-left:2em}.survey-shelf .sliding-highlighter{height:8em;width:8em}.survey-shelf .action-tile,.exp-densityBrowse .survey-shelf .action-tile{border:0;height:8em;width:8em}.survey-shelf .action-tile .content{height:8em;width:8em}.survey-shelf .action-tile .description{color:#777;font-size:1.2em;margin-top:-1.3em;opacity:1;white-space:nowrap}.exp-densityBrowse .survey-shelf.focused .action-tile .description{display:block}.exp-densityBrowse .survey-shelf .action-tile .description{display:none}.survey-shelf .action-tile .large-action-icon,.exp-densityBrowse .survey-shelf .action-tile .large-action-icon{background-color:transparent;font-size:5em;margin-top:.26em;padding-right:.2em}.survey-shelf .action-tile.selected .large-action-icon,.exp-densityBrowse .survey-shelf .action-tile.selected .large-action-icon{color:#fff}.survey-shelf .action-tile.focused .large-action-icon,.exp-densityBrowse .survey-shelf .action-tile.focused .large-action-icon{color:#222}.survey-shelf .button.focused{background-color:#fff;border-radius:.1em;color:#222;padding:.2em}.survey-shelf .button{color:#777}.limited-animation .survey-shelf{margin-bottom:5em;position:relative}.limited-animation .survey-shelf>.title{margin-left:6em}.limited-animation .exp-densityBrowse .survey-shelf>.title{margin-left:5em}.limited-animation .survey-shelf .horizontal-list{margin-left:17.5em}.limited-animation .exp-densityBrowse .survey-shelf .horizontal-list{margin-left:13.5em}.limited-animation .exp-densityBrowse .survey-shelf .action-tile .large-action-icon{margin-top:.12em}.limited-animation .exp-densityBrowse .survey-shelf .action-tile .description{display:block}#guide{box-shadow:.1em 0 1em 0em black;height:100%;left:0;overflow:hidden;position:absolute;-o-transform:translateX(-23em);-webkit-transform:translateX(-23em) translateZ(0);transform:translateX(-23em) translateZ(0);-o-transition:-o-transform 400ms cubic-bezier(0.4,0.0,0.2,1);-webkit-transition:-webkit-transform 400ms cubic-bezier(0.4,0.0,0.2,1);transition:transform 400ms cubic-bezier(0.4,0.0,0.2,1);width:28em}.limited-memory.limited-animation #guide{box-shadow:none;-o-transform:none;-webkit-transform:none;transform:none}.limited-memory #guide.focused{border-right:none}#guide.focused{-o-transform:translateX(0);-webkit-transform:translateX(0);transform:translateX(0)}#guide:hover{background-color:rgba(255,255,255,.2)}.limited-animation #guide:hover{background:none}.limited-animation #guide,.limited-animation #guide #user-info-background,.limited-animation .guide-carousel-background{-o-transition:none;-webkit-transition:none;transition:none}.guide-carousel-background{background-color:rgba(0,0,0,.2);height:100%;left:0em;position:absolute;top:0em;width:100%;-o-transition:background-color 400ms;-webkit-transition:background-color 400ms;transition:background-color 400ms}.limited-animation .guide-carousel-background,.limited-animation #guide #user-info-background{background-color:#1f2426}.limited-animation #guide:hover .guide-carousel-background,.limited-animation #guide:hover #user-info-background{background-color:#384145}.limited-animation.limited-memory .guide-carousel-background,.limited-animation.limited-memory #guide #user-info-background{background-color:#df2323}.limited-memory .guide-carousel-background,.limited-memory #guide #user-info-background,#guide .list{display:none}.limited-memory #guide.focused .guide-carousel-background,.limited-memory #guide.focused.logged-in #user-info-background,#guide.focused .list{display:block}.logged-in .guide-carousel-background{top:8.5em}#guide.focused .guide-carousel-background,#guide.focused:hover .guide-carousel-background{background-color:#df2323}.collapsed-guide,#guide.focused .collapsed-guide{display:none}.collapsed-guide-icons{color:#85888a;font-size:1.6em;left:15em;opacity:1;position:absolute;top:7.5em}.collapsed-guide-icon{font-family:'youtube-icons';margin-top:1em;margin-bottom:1em;text-align:center;width:2em}#guide .collapsed-guide-icons{-o-transition:opacity 150ms 450ms;-webkit-transition:opacity 150ms 450ms;transition:opacity 150ms 450ms}.limited-memory .collapsed-guide-icons{left:1em}.limited-animation #guide .collapsed-guide-icons{-o-transition:none;-webkit-transition:none;transition:none}#guide.focused .collapsed-guide-icons{opacity:0;-o-transition:none;-webkit-transition:none;transition:none}#guide .collapsed-guide-icon.icon-guide-my-subs{display:none}#guide.logged-in .collapsed-guide-icon.icon-guide-my-subs{display:block}#guide.logged-in .collapsed-guide-icon.icon-popular{display:none}.collapsed-guide-icon.icon-music{font-size:.925em;padding-left:.0375em}.limited-memory .collapsed-guide{background-color:#1f2426;border-right:.2em solid #111;display:block;height:100%;left:0;width:6em}#error-message{display:none}#guide.error.focused #error-message{color:#fff;display:block;font-size:2em;padding:2em;position:absolute;text-align:center;top:12em}#guide .sliding-highlighter{display:none;width:100%;height:4.2em;opacity:0}#guide.focused .sliding-highlighter{opacity:1}#guide.focused .sliding-highlighter{display:block}#guide.focused #user-info-background{visibility:visible}#guide #user-info-background{background-color:rgba(0,0,0,.2);-o-transition:background-color 400ms;-webkit-transition:background-color 400ms;transition:background-color 400ms}#guide.focused #user-info-background,#guide.focused:hover #user-info-background{background-color:#931717}.logged-in #user-info-background{display:block}#guide.focused .guide-user-text{visibility:visible}#guide .carousel,#guide .list,#guide .sliding-highlighter{color:#fff;margin-top:2em}#guide.logged-in .carousel,#guide.logged-in .list,#guide.logged-in .sliding-highlighter{margin-top:1em}#guide .carousel.hidden{display:block!important;visibility:hidden}#guide .list{position:relative}.carousel .guide-button{position:absolute}.list .guide-button{margin-bottom:.1em}.guide-button{font-size:1.6em;height:1.83em;overflow:hidden;padding:.5em .27em .3em 2.9em;white-space:nowrap}.guide-button:hover{background:#900;cursor:pointer;padding-right:1.78em}.guide-button.selected:hover{background:transparent}.guide-button.disabled:hover{background:transparent;cursor:inherit;padding-right:inherit}.guide-button.disabled{padding-left:2.1em;text-transform:uppercase}.guide-button.disabled.footer{text-transform:none}.guide-button-icon{color:#ef9191;display:inline-block;font-family:'youtube-icons';font-size:1.2em;margin-top:.2em;text-align:center;width:1.8em}.guide-button.disabled .guide-button-icon{display:none}.guide-user-text,.guide-button-title{color:#fbdada;display:inline-block;line-height:1.7em;overflow:hidden;padding-left:.5em;text-overflow:ellipsis;vertical-align:top}.guide-button.disabled .guide-button-title{color:#ef9191}.guide-user-text{visibility:hidden;margin-left:-0.4em;position:relative;top:30%;text-overflow:ellipsis;width:9.5em}.guide-button-title{width:11em}.engaged .guide-button-title{width:8em}.guide-button.footer .guide-button-title{font-size:75%;padding-top:.8em;width:21.15em}.guide-button-icon .image,#guide-user-avatar{background:no-repeat center;background-size:100%;height:1em;width:1em}.guide-button-icon .image{background-color:#fff;box-shadow:0 0 0 1px #ef9191;margin:0 .4em 0 .4em}.guide-button.focused .guide-button-icon .image{box-shadow:none}.guide-button .image{display:none}.guide-button.has-image .image{display:block}#guide-user-avatar{border-radius:50%;box-shadow:0 0 0 .05em rgba(239,145,145,.4),0 0 .05em #ef9191;display:inline-block;font-size:2.31em;margin:.2em .2em .2em .4em}#guide-user-avatar,.guide-user-text,.guide-button-icon,.guide-button-title{-o-transition:color 50ms;-webkit-transition:color 50ms;transition:color 50ms;transition-delay:25ms}.no-transition .guide-button .guide-button-icon,.no-transition .guide-button .guide-button-title,.limited-animation .guide-button .guide-button-icon,.limited-animation .guide-button .guide-button-title,.limited-animation #guide-user-avatar,.limited-animation .guide-user-text{-o-transition:none;-webkit-transition:none;transition:none}.guide-button.focused .guide-button-icon,.guide-button.focused .guide-button-title{color:#df2323}.limited-animation .guide-button.focused{background-color:#fff}.user-info-container{height:2.6em;padding:1.1em 0em 0em 1.8em;font-size:1.6em;white-space:nowrap}#user-info-background{display:none;height:8.53em;position:relative;width:inherit;z-index:1}.sliding-highlighter .select{background-color:rgba(0,0,0,0.8);display:none;height:2.9em;min-width:3.5em;padding:1.3em 0.6em 0em 0.6em;position:absolute;right:0;text-align:center}.engaged .guide .sliding-highlighter .select{display:block}.unlimited .guide-user-text{line-height:1.0em}.guide-user-unlimited{font-size:0.8em;color:#a88;text-transform:uppercase}#settings{height:100%;overflow:visible;position:absolute;right:0;left:4.5em}.settings-shelf{height:24em;margin-left:3.5em;margin-top:1em;position:absolute;top:19%;width:100%}.settings-title{color:#fff;font-size:1.2em;line-height:3em;white-space:nowrap}.limited-animation .settings .content .list{width:130em}.limited-animation #settings-items{margin-left:-17em}.settings-horizontal-list>.content{font-size:79%}.settings-horizontal-list>.no-content-message{display:none}.pointer-overlay{display:block}.pointer-overlay .nav-arrow{background-image:url(img/motion-control-sprite.png);background-repeat:no-repeat;background-size:100%;cursor:pointer;display:none;height:5em;opacity:.5;position:absolute;width:5em}.pointer-overlay.enabled .nav-arrow{display:block}.pointer-overlay .nav-arrow:hover{opacity:1}.pointer-overlay .up-arrow{background-position:0 100%;left:45%;top:18%}.pointer-overlay .down-arrow{background-position:0 0%;bottom:11%;left:45%}.pointer-overlay .left-arrow{background-position:0 33.3%;top:50%;left:5%}.settings-focused .pointer-overlay .left-arrow,.browse-sets-state .pointer-overlay .left-arrow,.search-state .pointer-overlay .left-arrow{left:7%}.pointer-overlay .right-arrow{background-position:0 66.7%;top:50%;right:5%}#search.input-open+.pointer-overlay .up-arrow,.post-play-state .pointer-overlay .up-arrow,.post-play-state .pointer-overlay .down-arrow{display:none}.watch-state .pointer-overlay .down-arrow{bottom:2%}.search-state.guide-focused .pointer-overlay .up-arrow{top:20%}@media screen and (aspect-ratio:5/4){#dialog.browse-sets #dialog-wrapper{padding:1.3em 2em}.flag-list-container.flag-options-dialog{font-size:.875em}}@media screen and (max-aspect-ratio:4/3){.player-controls #button-list{font-size:.875em}#transport-controls.ad-active .player-controls-widget .player-controls #button-list{font-size:1em}.fresh-transport-controls .progress-bar{width:70%}.fresh-transport-controls #player-time-elapsed,.fresh-transport-controls .player-time-total{font-size:1.1em;width:10%}}@media screen and (aspect-ratio:4/3){#browse-header .title{width:18.3em}#browse-header.one-button .title{width:13.2em}#browse-header.two-buttons .title{width:8.5em}.sets-ui .flag-list.grid{font-size:0.8em}.flag-claim{font-size:1.4em}#search .search-pairing{font-size:0.7em}.sets-ui .debug-dialog{font-size:0.8em}.voice-footer .list{padding-top:0;width:16em}}@media screen and (min-width:3840px){.player-controls{top:21px}}@media screen and (min-width:1919px){.opera .video-stream{height:1080px;width:1920px}.watch-video-tile,.watch-list .button{padding:10px}}@media screen and (min-width:640px) and (max-width:1024px) and (max-height:576px){.countdown-ad-callout{font-size:1.3em;right:10%}.opera .video-stream{height:576px;width:1024px}#keyboard-grid .button{width:.7em}#dialog-wrapper{padding-left:4em;padding-right:4em}.pairing{-moz-transform-origin:0 50%;-ms-transform-origin:0 50%;-o-transform-origin:0 50%;-webkit-transform-origin:0 50%;-moz-transform:scale(.7);-ms-transform:scale(.7);-o-transform:scale(.7);-webkit-transform:scale(.7)}.browse-sets #browse-header.collapsed{-o-transform:translateY(-19%);-webkit-transform:translateY(-19%);transform:translateY(-19%)}}@media screen and (max-width:720px) and (max-height:480px){.countdown-ad-callout{font-size:.9em;right:5%}.skip-ad-callout{right:3%}.opera .video-stream{height:480px;width:720}#search .pairing .alternatives{margin:0 0 0 1em}#keyboard-grid .button{width:.8em}#search .pairing .search-message .title{margin-top:0.7em}#dialog-view .pairing{font-size:0.8em;margin-top:2em}.watch-list .list{margin-left:-4em}}@media screen and (max-width:640px) and (max-height:480px){.opera .video-stream{height:480px;width:640px}#keyboard-grid .button{width:.7em}#dialog-view .reset-help{display:block;width:27em}.watch-video-tile,.watch-list .button{padding:4px}.browse-header-metadata{bottom:3.9em}.browse-sets #browse-header.collapsed{-o-transform:translateY(-27%);-webkit-transform:translateY(-27%);transform:translateY(-27%)}.voice-footer .list{font-size:.6em;margin-left:35%;padding-top:-3em;width:35%}.engaged .engagement-indicator{display:inline-block;font-size:1.3em;height:3em;margin-bottom:1.5em}.engaged .engagement-indicator .title{display:inline-block}.engagement-indicator .stop-listening .icon{display:inline-block;height:3em;left:0px;top:0px;width:15%}}@media screen and (min-height:1080px) and (max-width:1440px){.video-tile-container{-moz-transform:scale(.7);-ms-transform:scale(.7);-o-transform:scale(.7);-webkit-transform:scale(.7);transform:scale(.7);-moz-transform-origin:top right;-ms-transform-origin:top right;-o-transform-origin:top right;-webkit-transform-origin:top right;transform-origin:top right}.player-controls #button-list .button,.player-controls #button-list .toggle-button{margin-right:.2em;margin-left:.2em}.fresh-transport-controls .progress-bar{width:59%}.fresh-transport-controls #player-time-elapsed,.fresh-transport-controls .player-time-total{font-size:1em;width:14%}.fresh-transport-controls .button,.fresh-transport-controls .toggle-button{font-size:1.1em}.fresh-transport-controls #transport-more-button{font-size:1.7em}#dialog-wrapper{padding:1.3em 3em}.dialog-contents{font-size:95%}#dialog-wrapper .connection-steps{padding:0}#dialog-wrapper .pairing .qr-code,#dialog-wrapper .pairing .connected-list{margin:.2em}.context-menu-list{left:30%;right:30%}.voice-footer .list{font-size:0.65em;padding-left:22em;padding-right:18em;padding-top:1.3em}}.sets-ui .carousel .item,.sets-ui .carousel .channel-tile,.sets-ui .carousel .auto-play-tile{background-color:inherit!important}.sets-ui .carousel .item:hover,.sets-ui .carousel .channel-tile:hover,.sets-ui .carousel .auto-play-tile:hover{background-color:rgba(255,255,255,.1)!important}.sets-ui .tile .channel-bottom>.title,.sets-ui .tile .tile-bottom>.title{color:#e1e1e1}.sets-ui .tile .channel-bottom>.details,.sets-ui .tile .tile-bottom>.details{color:#646464}.sets-ui .tile.focused.selected .channel-bottom>.title,.sets-ui .tile.focused.selected .tile-bottom>.title{color:#212121}.sets-ui .tile.focused.selected .channel-bottom>.details,.sets-ui .tile.focused.selected .tile-bottom>.details{color:#8d8d8d}.sets-ui #transport-controls .player-controls #button-list div.icon-player-more,.sets-ui #transport-controls .player-controls #button-list div.icon-player-less{color:#fff}.sets-ui #transport-controls .player-controls #button-list div.icon-player-more.focused,.sets-ui #transport-controls .player-controls #button-list div.icon-player-less.focused{color:#222}.sets-ui .settings-title{font-size:1.5em}.sets-ui .action-tile .title{font-size:2.4em;margin-left:.1em;margin-right:.1em}.sets-ui .flag-list.grid{margin:3.25em}.sets-ui .flag-list .list{text-align:left}.sets-ui .flag-list .button{width:14em;text-align:center}.sets-ui .flag-example{top:20%}.sets-ui .flag-video{margin-left:2em;text-align:left}.sets-ui .flag-claim .privacy-invasion{margin:auto;width:50%}.sets-ui .authentication-error-dialog,.sets-ui .delete-video-error,.sets-ui .missing-channel-error,.sets-ui .server-unavailable,.sets-ui .network-error-dialog{margin-top:1em}.sets-ui .eureka-authorization-dialog .icon,.sets-ui .eureka-player-error-dialog .icon{margin-left:3em}.sets-ui .eureka-authorization-dialog .info,.sets-ui .eureka-player-error-dialog .info{width:50%}.sets-ui .debug-dialog{padding:0 1em;text-align:left}.sets-ui .text-dialog #dialog-view{width:auto}.sets-ui #dialog .platform-container{font-size:.6em;margin-bottom:.5em}.sets-ui .paid-channel-dialog{margin:1em}.sets-ui #dialog .connection-instructions .icon-settings-pair{display:none}.sets-ui .closed-captions-dialog{text-align:left;padding-left:1em}.sets-ui .delete-video-error,.sets-ui .paid-scope-dialog,.sets-ui .video-edit-error,.sets-ui .video-processing,.sets-ui .video-upload-error{margin:3em;font-size:1.6em}.limited-animation .auto-play-tile.focused .video-tile{background-color:#f1f1f1}.limited-animation.sets-ui .title-card{background:-o-linear-gradient(top,rgba(0,0,0,0.9),rgba(0,0,0,0.8),transparent);background:-webkit-linear-gradient(top,rgba(0,0,0,0.9),rgba(0,0,0,0.8),transparent);background:linear-gradient(to bottom,rgba(0,0,0,0.9),rgba(0,0,0,0.8),transparent)}.limited-animation.sets-ui #search #text-box-background,.limited-animation.sets-ui #search #search-text-entry{background-color:rgba(0,0,0,0)}.sets-ui .scrolling-text{text-align:left;padding-left:1em;height:20em}.sets-ui #dialog .scrollbar{right:11em}.sets-ui #dialog-view .reset-help{width:20em}.sets-ui #dialog.remote-reset-dialog .buttons{position:inherit}.sets-ui #dialog.remote-reset-dialog .reset-help{height:11em;padding-left:1em;text-align:left}.sets-ui #dialog.remote-reset-dialog .connected-list{margin-right:2em}.sets-ui .dialog-focused #legend{bottom:17%;right:16%}.exp-densityFiveTiles .horizontal-list>.content{font-size:59%}.exp-densityFiveTiles .shelf>.title{font-size:1.5em;margin-bottom:.75em;margin-top:0}.exp-densityFiveTiles .channel-bottom .title,.exp-densityFiveTiles .tile-bottom .title{font-size:1.75em}.exp-densityFiveTiles .tile-bottom .details{font-size:1.5em;height:50%;margin:.2em 1em 0 0}.exp-densityFiveTiles .channel-top .video-thumb{border-radius:50%}.limited-animation .exp-densityFiveTiles .browse-content .list{margin-left:-8em;width:155em}.exp-densityFourTiles .horizontal-list>.content{font-size:67%}.exp-densityFourTiles .shelf>.title{font-size:1.5em;margin-bottom:.75em;margin-top:0}.exp-densityFourTiles .channel-bottom .title,.exp-densityFourTiles .tile-bottom .title{font-size:1.75em}.exp-densityFourTiles .tile-bottom .details{font-size:1.5em;height:50%;margin:.2em 1em 0 0}.limited-animation .exp-densityFourTiles .browse-content .list{margin-left:-8.5em;width:155em}.exp-densityFourTiles .channel-top .video-thumb{border-radius:50%}.exp-densityHideMetadata .shelf .horizontal-list .tile-bottom,.exp-densityHideMetadata .shelf .horizontal-list .channel-bottom{display:none}.exp-densityHideMetadata .shelf.selected .horizontal-list .tile-bottom,.exp-densityHideMetadata .shelf.selected .horizontal-list .channel-bottom{display:block}.exp-densityHideMetadata .horizontal-list .video-tile .tile-top .decoration{display:none}.exp-densityHideMetadata #search .tile-top .decoration,.exp-densityHideMetadata #post-play-list .tile-top .decoration,.exp-densityHideMetadata .shelf.selected .horizontal-list .tile-top .decoration{display:block}.exp-densityHideMetadata .shelf:not(.selected) .channel-tile .video-thumb{height:70%;width:70%}.sets-ui .exp-densityHideMetadata .shelf:not(.selected) .carousel .item:hover,.sets-ui .exp-densityHideMetadata .shelf:not(.selected) .carousel .channel-tile:hover{background-color:inherit!important}.limited-animation .exp-densityHideMetadata .browse-content .list .shelf:nth-child(1){margin-bottom:9.5em}.limited-animation.sets-ui .exp-densityHideMetadata .channel-tile:not(.focused),.limited-animation.sets-ui .exp-densityHideMetadata .video-tile:not(.focused){background-color:inherit}.roku.limited-animation.sets-ui .exp-densityHideMetadata .channel-tile:hover:not(.focused),.roku.limited-animation.sets-ui .exp-densityHideMetadata .video-tile:hover:not(.focused){background-color:inherit}
\ No newline at end of file
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/button-fullscreen-active.png b/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/button-fullscreen-active.png
deleted file mode 100644
index 14a8c41..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/button-fullscreen-active.png
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/button-fullscreen-onhover-active.png b/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/button-fullscreen-onhover-active.png
deleted file mode 100644
index 79b4fbb..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/button-fullscreen-onhover-active.png
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/button-mute-active.png b/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/button-mute-active.png
deleted file mode 100644
index 1022073..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/button-mute-active.png
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/button-mute-onhover-active.png b/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/button-mute-onhover-active.png
deleted file mode 100644
index a1cb606..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/button-mute-onhover-active.png
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/button-unmute-active.png b/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/button-unmute-active.png
deleted file mode 100644
index 6e017dc..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/button-unmute-active.png
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/button-unmute-onhover-active.png b/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/button-unmute-onhover-active.png
deleted file mode 100644
index 2efdf75..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/button-unmute-onhover-active.png
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/call-to-cast-end-screen-gaming-heart.jpg b/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/call-to-cast-end-screen-gaming-heart.jpg
deleted file mode 100644
index 4cf9844..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/call-to-cast-end-screen-gaming-heart.jpg
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/call-to-cast-end-screen-kids-mother-goose.jpg b/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/call-to-cast-end-screen-kids-mother-goose.jpg
deleted file mode 100644
index 4cf9844..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/call-to-cast-end-screen-kids-mother-goose.jpg
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/call-to-cast-end-screen-kids-promo.jpg b/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/call-to-cast-end-screen-kids-promo.jpg
deleted file mode 100644
index 4cf9844..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/call-to-cast-end-screen-kids-promo.jpg
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/call-to-cast-end-screen-kids-rainbow.jpg b/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/call-to-cast-end-screen-kids-rainbow.jpg
deleted file mode 100644
index 4cf9844..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/call-to-cast-end-screen-kids-rainbow.jpg
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/call-to-cast-end-screen-kids-sesame.jpg b/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/call-to-cast-end-screen-kids-sesame.jpg
deleted file mode 100644
index 4cf9844..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/call-to-cast-end-screen-kids-sesame.jpg
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/call-to-cast-end-screen-kids-talking-tom.jpg b/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/call-to-cast-end-screen-kids-talking-tom.jpg
deleted file mode 100644
index 4cf9844..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/call-to-cast-end-screen-kids-talking-tom.jpg
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/call-to-cast-end-screen-kids-wonderquest.jpg b/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/call-to-cast-end-screen-kids-wonderquest.jpg
deleted file mode 100644
index 4cf9844..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/call-to-cast-end-screen-kids-wonderquest.jpg
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/call-to-cast-end-screen-loki.jpg b/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/call-to-cast-end-screen-loki.jpg
deleted file mode 100644
index 4cf9844..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/call-to-cast-end-screen-loki.jpg
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/call-to-cast-end-screen-multi-user.jpg b/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/call-to-cast-end-screen-multi-user.jpg
deleted file mode 100644
index 4cf9844..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/call-to-cast-end-screen-multi-user.jpg
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/call-to-cast-end-screen-tv-queue.jpg b/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/call-to-cast-end-screen-tv-queue.jpg
deleted file mode 100644
index 4cf9844..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/call-to-cast-end-screen-tv-queue.jpg
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/call-to-cast-end-screen-yt-mix.jpg b/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/call-to-cast-end-screen-yt-mix.jpg
deleted file mode 100644
index 4cf9844..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/call-to-cast-end-screen-yt-mix.jpg
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/call-to-cast-music-party-logo.png b/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/call-to-cast-music-party-logo.png
deleted file mode 100644
index bae7f19..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/call-to-cast-music-party-logo.png
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/call-to-cast-music.jpg b/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/call-to-cast-music.jpg
deleted file mode 100644
index 4cf9844..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/call-to-cast-music.jpg
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/call-to-cast-yt-logo.png b/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/call-to-cast-yt-logo.png
deleted file mode 100644
index fdd416d..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/call-to-cast-yt-logo.png
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/cast_disconnected_blue.png b/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/cast_disconnected_blue.png
deleted file mode 100644
index da20b33..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/cast_disconnected_blue.png
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/circle.png b/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/circle.png
deleted file mode 100644
index 9222c60..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/circle.png
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/default_bg.jpg b/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/default_bg.jpg
deleted file mode 100644
index a55be3c..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/default_bg.jpg
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/dial-sprite.png b/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/dial-sprite.png
deleted file mode 100644
index 6c86373..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/dial-sprite.png
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/edit_tile_dark.png b/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/edit_tile_dark.png
deleted file mode 100644
index fbafd90..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/edit_tile_dark.png
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/edit_tile_light.png b/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/edit_tile_light.png
deleted file mode 100644
index 1bbade8..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/edit_tile_light.png
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/flag.png b/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/flag.png
deleted file mode 100644
index 0f17309..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/flag.png
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/icon-aaa-engaged.png b/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/icon-aaa-engaged.png
deleted file mode 100644
index 35a3db2..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/icon-aaa-engaged.png
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/icon-feedback.png b/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/icon-feedback.png
deleted file mode 100644
index 426b4b3..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/icon-feedback.png
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/icon-fullscreen.png b/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/icon-fullscreen.png
deleted file mode 100644
index c708e76..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/icon-fullscreen.png
+++ /dev/null
@@ -1,11 +0,0 @@
-<!DOCTYPE html>
-<html lang=en>
-  <meta charset=utf-8>
-  <meta name=viewport content="initial-scale=1, minimum-scale=1, width=device-width">
-  <title>Error 404 (Not Found)!!1</title>
-  <style>
-    *{margin:0;padding:0}html,code{font:15px/22px arial,sans-serif}html{background:#fff;color:#222;padding:15px}body{margin:7% auto 0;max-width:390px;min-height:180px;padding:30px 0 15px}* > body{background:url(//www.google.com/images/errors/robot.png) 100% 5px no-repeat;padding-right:205px}p{margin:11px 0 22px;overflow:hidden}ins{color:#777;text-decoration:none}a img{border:0}@media screen and (max-width:772px){body{background:none;margin-top:0;max-width:none;padding-right:0}}#logo{background:url(//www.google.com/images/branding/googlelogo/1x/googlelogo_color_150x54dp.png) no-repeat;margin-left:-5px}@media only screen and (min-resolution:192dpi){#logo{background:url(//www.google.com/images/branding/googlelogo/2x/googlelogo_color_150x54dp.png) no-repeat 0% 0%/100% 100%;-moz-border-image:url(//www.google.com/images/branding/googlelogo/2x/googlelogo_color_150x54dp.png) 0}}@media only screen and (-webkit-min-device-pixel-ratio:2){#logo{background:url(//www.google.com/images/branding/googlelogo/2x/googlelogo_color_150x54dp.png) no-repeat;-webkit-background-size:100% 100%}}#logo{display:inline-block;height:54px;width:150px}
-  </style>
-  <a href=//www.google.com/><span id=logo aria-label=Google></span></a>
-  <p><b>404.</b> <ins>That’s an error.</ins>
-  <p>The requested URL <code>/s/tv/html5/f0d770f4/img/icon-fullscreen.png</code> was not found on this server.  <ins>That’s all we know.</ins>
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/icon-help.png b/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/icon-help.png
deleted file mode 100644
index 21839e2..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/icon-help.png
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/icon-mute.png b/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/icon-mute.png
deleted file mode 100644
index 999078d..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/icon-mute.png
+++ /dev/null
@@ -1,11 +0,0 @@
-<!DOCTYPE html>
-<html lang=en>
-  <meta charset=utf-8>
-  <meta name=viewport content="initial-scale=1, minimum-scale=1, width=device-width">
-  <title>Error 404 (Not Found)!!1</title>
-  <style>
-    *{margin:0;padding:0}html,code{font:15px/22px arial,sans-serif}html{background:#fff;color:#222;padding:15px}body{margin:7% auto 0;max-width:390px;min-height:180px;padding:30px 0 15px}* > body{background:url(//www.google.com/images/errors/robot.png) 100% 5px no-repeat;padding-right:205px}p{margin:11px 0 22px;overflow:hidden}ins{color:#777;text-decoration:none}a img{border:0}@media screen and (max-width:772px){body{background:none;margin-top:0;max-width:none;padding-right:0}}#logo{background:url(//www.google.com/images/branding/googlelogo/1x/googlelogo_color_150x54dp.png) no-repeat;margin-left:-5px}@media only screen and (min-resolution:192dpi){#logo{background:url(//www.google.com/images/branding/googlelogo/2x/googlelogo_color_150x54dp.png) no-repeat 0% 0%/100% 100%;-moz-border-image:url(//www.google.com/images/branding/googlelogo/2x/googlelogo_color_150x54dp.png) 0}}@media only screen and (-webkit-min-device-pixel-ratio:2){#logo{background:url(//www.google.com/images/branding/googlelogo/2x/googlelogo_color_150x54dp.png) no-repeat;-webkit-background-size:100% 100%}}#logo{display:inline-block;height:54px;width:150px}
-  </style>
-  <a href=//www.google.com/><span id=logo aria-label=Google></span></a>
-  <p><b>404.</b> <ins>That’s an error.</ins>
-  <p>The requested URL <code>/s/tv/html5/f0d770f4/img/icon-mute.png</code> was not found on this server.  <ins>That’s all we know.</ins>
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/icon-playbutton.png b/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/icon-playbutton.png
deleted file mode 100644
index 8ac546c..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/icon-playbutton.png
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/icon-privacy-check-dark.png b/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/icon-privacy-check-dark.png
deleted file mode 100644
index e6f1240..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/icon-privacy-check-dark.png
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/icon-privacy-check-light.png b/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/icon-privacy-check-light.png
deleted file mode 100644
index b39bd87..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/icon-privacy-check-light.png
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/icon-privacy-private-dark.png b/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/icon-privacy-private-dark.png
deleted file mode 100644
index 2a16694..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/icon-privacy-private-dark.png
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/icon-privacy-private-light.png b/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/icon-privacy-private-light.png
deleted file mode 100644
index c7b3d38..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/icon-privacy-private-light.png
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/icon-privacy-public-dark.png b/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/icon-privacy-public-dark.png
deleted file mode 100644
index 87b0492..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/icon-privacy-public-dark.png
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/icon-privacy-public-light.png b/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/icon-privacy-public-light.png
deleted file mode 100644
index 42faaa1..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/icon-privacy-public-light.png
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/icon-privacy-unlisted-dark.png b/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/icon-privacy-unlisted-dark.png
deleted file mode 100644
index 248782d..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/icon-privacy-unlisted-dark.png
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/icon-privacy-unlisted-light.png b/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/icon-privacy-unlisted-light.png
deleted file mode 100644
index 9f37410..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/icon-privacy-unlisted-light.png
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/icon-unmute.png b/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/icon-unmute.png
deleted file mode 100644
index 70da26b..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/icon-unmute.png
+++ /dev/null
@@ -1,11 +0,0 @@
-<!DOCTYPE html>
-<html lang=en>
-  <meta charset=utf-8>
-  <meta name=viewport content="initial-scale=1, minimum-scale=1, width=device-width">
-  <title>Error 404 (Not Found)!!1</title>
-  <style>
-    *{margin:0;padding:0}html,code{font:15px/22px arial,sans-serif}html{background:#fff;color:#222;padding:15px}body{margin:7% auto 0;max-width:390px;min-height:180px;padding:30px 0 15px}* > body{background:url(//www.google.com/images/errors/robot.png) 100% 5px no-repeat;padding-right:205px}p{margin:11px 0 22px;overflow:hidden}ins{color:#777;text-decoration:none}a img{border:0}@media screen and (max-width:772px){body{background:none;margin-top:0;max-width:none;padding-right:0}}#logo{background:url(//www.google.com/images/branding/googlelogo/1x/googlelogo_color_150x54dp.png) no-repeat;margin-left:-5px}@media only screen and (min-resolution:192dpi){#logo{background:url(//www.google.com/images/branding/googlelogo/2x/googlelogo_color_150x54dp.png) no-repeat 0% 0%/100% 100%;-moz-border-image:url(//www.google.com/images/branding/googlelogo/2x/googlelogo_color_150x54dp.png) 0}}@media only screen and (-webkit-min-device-pixel-ratio:2){#logo{background:url(//www.google.com/images/branding/googlelogo/2x/googlelogo_color_150x54dp.png) no-repeat;-webkit-background-size:100% 100%}}#logo{display:inline-block;height:54px;width:150px}
-  </style>
-  <a href=//www.google.com/><span id=logo aria-label=Google></span></a>
-  <p><b>404.</b> <ins>That’s an error.</ins>
-  <p>The requested URL <code>/s/tv/html5/f0d770f4/img/icon-unmute.png</code> was not found on this server.  <ins>That’s all we know.</ins>
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/icons.ttf b/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/icons.ttf
deleted file mode 100644
index 929a78f..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/icons.ttf
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/legend-sprite-bbb.png b/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/legend-sprite-bbb.png
deleted file mode 100644
index ea9e5b8..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/legend-sprite-bbb.png
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/legend-sprite-ccc.png b/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/legend-sprite-ccc.png
deleted file mode 100644
index 7727e8c..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/legend-sprite-ccc.png
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/legend-sprite-ddd.png b/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/legend-sprite-ddd.png
deleted file mode 100644
index f6b0382..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/legend-sprite-ddd.png
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/legend-sprite-desktop.png b/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/legend-sprite-desktop.png
deleted file mode 100644
index 99979f0..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/legend-sprite-desktop.png
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/legend-sprite-eee.png b/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/legend-sprite-eee.png
deleted file mode 100644
index 1d2930b..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/legend-sprite-eee.png
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/legend-sprite-fff.png b/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/legend-sprite-fff.png
deleted file mode 100644
index 056ccf9..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/legend-sprite-fff.png
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/legend-sprite-ggg.png b/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/legend-sprite-ggg.png
deleted file mode 100644
index 8d846cb..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/legend-sprite-ggg.png
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/motion-control-sprite.png b/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/motion-control-sprite.png
deleted file mode 100644
index 0ecee6d..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/motion-control-sprite.png
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/pair_promo.png b/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/pair_promo.png
deleted file mode 100644
index 7bbb8ba..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/pair_promo.png
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/pairing-promo-combo.png b/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/pairing-promo-combo.png
deleted file mode 100644
index 7442d55..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/pairing-promo-combo.png
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/player-pause.png b/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/player-pause.png
deleted file mode 100644
index afab54d..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/player-pause.png
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/player-play.png b/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/player-play.png
deleted file mode 100644
index bdd2471..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/player-play.png
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/trash_tile_dark.png b/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/trash_tile_dark.png
deleted file mode 100644
index 495f00f..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/trash_tile_dark.png
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/trash_tile_light.png b/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/trash_tile_light.png
deleted file mode 100644
index 049ef34..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/trash_tile_light.png
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/volume_0_pressed.png b/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/volume_0_pressed.png
deleted file mode 100644
index 7abd5c6..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/volume_0_pressed.png
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/volume_1_pressed.png b/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/volume_1_pressed.png
deleted file mode 100644
index d283c5a..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/volume_1_pressed.png
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/volume_2_pressed.png b/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/volume_2_pressed.png
deleted file mode 100644
index 8eb2ac0..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/volume_2_pressed.png
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/volume_mute_pressed.png b/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/volume_mute_pressed.png
deleted file mode 100644
index b867b7f..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/volume_mute_pressed.png
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/yt-kids-logo.png b/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/yt-kids-logo.png
deleted file mode 100644
index 2de9041..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/yt-kids-logo.png
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/yt-logo-fullcolor.png b/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/yt-logo-fullcolor.png
deleted file mode 100644
index 1fa0d1a..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/yt-logo-fullcolor.png
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/yt-music-logo-small.png b/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/yt-music-logo-small.png
deleted file mode 100644
index e73e0fc..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/yt-music-logo-small.png
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/yt-music-logo.png b/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/yt-music-logo.png
deleted file mode 100644
index 8e60577..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/f0d770f4/img/yt-music-logo.png
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/misc/fonts/Roboto-Regular-20140804.ttf b/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/misc/fonts/Roboto-Regular-20140804.ttf
deleted file mode 100644
index 0e58508..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/www.youtube.com/s/tv/html5/misc/fonts/Roboto-Regular-20140804.ttf
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/youtube-2015-q3-initial-layout.html b/src/cobalt/layout_tests/testdata/benchmarks/youtube-2015-q3-initial-layout.html
deleted file mode 100644
index 5d33c44..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/youtube-2015-q3-initial-layout.html
+++ /dev/null
@@ -1,1751 +0,0 @@
-<html xmlns:yt="http://youtube.com"><head><meta charset="utf-8">
-    
-    
-    <title>YouTube TV</title>
-    
-  <style>#loader { height: 100%; left: 0px; position: absolute; top: 0px; width: 100%; z-index: 0; background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAmwAAAEsCAYAAAB+Je/UAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAABVsSURBVFjD7dntcavAGYDRWwIlUIJKoARKoASVQAcqgRIogRJUAiVQArETPKN4LFsfC7sL5505kx9JrvXF7sPyb57nfwAApMuHAAAg2AAAEGwAAIINAADBBgCAYAMAEGwAAAg2AADBBgCAYAMAQLABAAg2AAAEGwAAgg0AQLABACDYAAAEGwAAgg0AAMEGACDYAAAQbAAAgg0AAMEGAIBgAwAQbAAACDYAAAQbAIBgAwBAsAEACDYAAAQbAACCDQBAsAEAINgAAAQbAACCDQAAwQYAINgAABBsAAAINgAAwQYAgGADABBsAAAINgAABBsAgGADAECwAQAINgAABBsAAIINAECwAQAg2AAAEGwAAIINAADBBgAg2AB4Qfmh+kX9oX3A5cPwgmne70wvfibtg+o/vrvS7xvBBrCd0w+b8U8beHcnAMbZmP+f8c5vpbvz2/r++zu5LhFswF59bXbNt83w+6ZpTI7z20lhLfQEG0BKipsTsF6AGfNr4PU3J3iF9UOwAaz9yPLy4WoPNuatuS7XkpM4wQYQRLmcDIz2WGNWmXG5xpy8CTaAl0Kts5cas+l0y7VnDRJsAL8qhJox0efixE2wAdxz/jDZK41JYj6vxdq6JNgAbk/VBvujMUlO77RNsAGcnKoZk/yMy7VqzRJswAE19kFjsnpE2li3BBsg1owx6Y9oE2yAWDPGiDYEGyDWjDGiTbAB3FXZ44zZ1Zysa4IN2Jfiw2R/M2ZXMy7XtjVOsAE70dvbjNnl9NY3wQbsQ21PM2bXU1nnBBuQv9F+ZszuH41a6wQbkLHGXmbMIaax3gk2wOmaMcYpG4INcLpmjHHKJtiA47nav4w51AzWPcEG5KWydxlzyCmtf4INyEdn3zLmkHOx/gk2IB+TfcuYQ85k/RNsQB5qe5Yxh57aOijYAI9DjTFpT2cdFGyAx6HGmLTHY1HBlrUhoC2Om9uAr9f373GoMeZYc7IeCrZcXTM7bg51SnL13R/KJdDvpt258WCPx3xWx5vWeijYcnUOeCGMK7/WU8DXevbduzF5YY5w4n6UqXxWhxxPVwRbtsrAF0OZSVw6Fj+OIuDvRrAJNsGW/1gXBZvHoiufXPWZnASSltpCL0IEmwn43SPYdvFYtF/xdU6BXuPFd34oF8EmQgSbuZnWuijYPBb9X1St8RpPAV9j7Ts/lJAbq89KsAm2/GewLgo2C/V6x81t4kFJukKOdUCwCbb8xz4g2LLWJH7cHGpx7HzXh3IKvNALNsEm2PYxpfVRsOWqCHghXBM+JWl814dSCzYRItjMRk+CEGyb6QNeDEXA11Ul+rpIXyvYRIhgMxs9CUKwZflYtE5w0x18x4fTCTYRItiMYBNsHoven0uCm8jZd3w4oTdVn5dgE2z7GDfwgs1j0WXGBCOy9P0ezlWwiRDBZgSbYPNYdP1AqhMLSPISegSbYBNs+5jJ+ijY9mAKdEE0AV7LJcFHtAg2wSbYBFv+Y40UbNnrAl0MfUKPtCrf6+FUFngRItjML1NYJwVb7kI9hnz3yLlw9I1gE2yCzST6G0Cw7eqx6CmBcOx8n248As0QUMjICmWyWQs2vwEE2zEfi7ZvvIZLoNdQ+z4PqU18swj1Po1gM6/N2Top2JxO/P+JxKuvYQz0Ggrfp2ATbEawmYAHCgi2pIQKplf+dhnob/e+R6fEgs0INiPYBNuexXwk2TjyZucbqmATbCbuDNZJwbYXp0AXxSXi6UjpexRsgs0INiPYBJvHon/PNaO/y35Mgs0INiPYBJvHouuddJURT/bYj9RHsAk2s5/rEMG2m8eizRN/swn0N0++P8Em2IxgM4JNsHks+vh0T/y9PsDfm3xvh1YeaKMwgs0INsHGf7UbB9S0cSCyP5VgM4LNeBIj2JxWrHdhhHoEW/veBJtgM4LNrPw7QLAl5xrgwjg/8HfOgS7CYsXPolgu8nYx/KBf/rvGgiDYBJtgM4JNsLGVECHVP/B3+o3+zrM+T/4uH8Y3X1ezckx+19wJyme8+sjgEuBvv/q+W8FmEgu26eZGrvqmWa6Xawaf27C81p/ex5fzzc3sJNgEG3k+Fv3r74S4uJsVgifkfL7HbvlM1/7e2ogL2rDB70WwhZnul833Ed2bv693pB5sn/+7+smbwy6h3+m0BNo7n1eIG961prW/CzaPRZ9fJEM9xgoRQqeNHnm0K5+4CTbBtsWm1Ub8HFINtuHNv1FFPp0aA9/8fqnntB4nCzbB5rHonbmsvMleE4mcZxfG0yzYBJtg20OwTctaGeK7LebtH5NOK4XaT08vUnhcKtgEm8eiLwTVEPni+1wc+4iPHdZYJI8abP2c/gi2/QXbdYWbr2LDsOlXPvFPac0VbILNY9EHplhx4znN+dzJ/jSho+2owZbSIxfBdoxgG1aMnWrn4RLzRLy3rws2j0Wfi5IQC9KYeaytEW2CTbAJtvWDrdtg7e0yulF89RFpjBns64LNY9H7060UFl2CC2GszUSwCTbBtk2wdRutvWs9Gk0h1mJGm2ATbB6LPnkSFuKEq450YrjGTIEerwg2wSbY1gu264qPQbe4uWzn9PaXi2ATbKT1WLT8ducYYwM8Jb6hh1hIjhps05z+CLa8g+2ycayFXrP6HR8KCDbBRsDHouebf6+OtPjkcApTz4ItVsQINsGWojGhE/w195itbrpGe7pg81j08cAKcQTePPn6q0w29XEWbIJNsAm2sI9FmwzeZ5vhtYhg2+Vj0Snw8fezd4vDnM/Us2ATbIJNsP1Pc5ATpWLDUzZ7umDzWPSBBbMI8O9cn3ztpzmv6WfBJtgEm2AL83TgnNF7vWR2LSLYdvtYtF1Oj+aNF6DQi0C3vIZqeT9toFPD2ykFm2ATbFkE22n5t9vlP8sV/saWTyP+OgWrllO/5uYmPKWDAcEm2AjwWPS6xM67c3rydY8BT75+W5zqgEf6jWATbIIt2WArls/g3toyBA636Y01K1SUDn/cxIZ6v9eMrkUE264fi44B/v8x7tj6Jxa2acO/J9gEm2DbNtjqB9ex6YWby9DXVhPgbzcPrmmh3u85o2sRwbbrx6LvzuWFxebdmZ489j8H+puC7TGVYBNsGwXbs+/7GjnY3j31Kp+8AX12rbx30yvYBBsBXCJvevWTrzfEI9jzC59TiMewp1mwCTbBlkqwvbr2NZHW3XGOE4pdIr9xwSbYDu8UccN75dQpxIlgMccJ23oWbIJNsKUSbK/+vocIJ3uf00dc64tIn7VgE2yscHo0b7QAvTvDHC9s21mwCTbBlnuwhQiYNsJ3/M5NZzOn/STHPi7YDqOLtOE9uwiUkTe2GIEq2ASbYEsv2KoIn3fM9/vuY9GzYBNshFFH2vCevUsNsZHXc7xj/WEWbIJNsO0h2NoIa24V8Xd2ffNvV5lciwi2LGw9wxwnLKs5XrCNgk2wCTbB9uJv/J2/V0b+vQs2wUZA/cab3TlSvJRvfEaXCAuLYBNsgi29YBvmvIKtSuD3LtgEG4GcN97syjlOvMTa1ASbYBNsgi3nYKtmwSbYSEK54UY3zvkEk2ATbIJNsMUOthiBKNgEGwkbN9roLgcOtkKwCTbBJtgOGGxjBtcigi0bl402umo+brBVs2ATbIJNsB0v2IYMrkUEWzbqDTa5KbNHkoJNsAk2wSbYBJtgIzlrTyfYBJtgE2yCTbAJNsFGuhfV5zSCTbAJNsEm2ASbYBNsxI+S36YQbIJNsAk2wSbYBJtgI/6FfW/6BIJJsAk2wSbYBJtgQ7DtwlpzFmyCTbAJNsEm2ASbYCOMtS6sUrAJNsEm2ATb5sF2Wv6Nd5wEm2AjPe0KF9Q1kdcl2ASbYBNsRwu2PR8ECDbBdmhrbJgXwSbYBJtgE2yCTbAJNsIpVrigTrNgE2yCTbAJNsEm2AQbQV0DXkxTQo9qBZtgE2yCTbAJNgTbbnQBL6ZOsAk2wSbYBJtgE2yCjfDOAS+mWrAJNsEm2ASbYBNsgo3wQm6a1SzYBJtgE2yCTbAJNsGGYBNsgk2wCTbBJtgQbIJNsAk2wSbYBJtgE2yCDcEm2ASbYBNsgk2wCTbBhmATbIJNsAk2wSbYEGyCTbAJNsEm2ASbYBNsgg3BJtgEm2ATbIJNsAk2wYZgE2wRg+3fnMcINsGWS7DlchMk2AQbgk2wCTbBJtgEm2BDsAk2wSbYBJtgE2yCTbAJNgSbYBNsgk2wCTbBJtgEG4JNsAk2wSbYBJtgE2w+BMEm2ASbYBNsgk2wCTbBhmATbIJNsAk2wXaUYLvarwWbYBNsgi3e5z0JNsEm2ATbBp8Ngk2wCTbBFmkzFWyCTbAJNgSbYBNsgk2wCTbBJtgEm2BDsAk2wSbYBJtgE2yCTbAh2ASbYBNsgk2wbRhFa13Tvf1asAk2wSbY4n3evWATbIJNsG3w20ewCTbBJtgif9aCTbAJNsGGYBNsgk2wCTbBJtgEm2ATbAi2PQZbIdgEm2ATbIJNsAk2BFvawZbDqV4KwXYWbIJNsAm2DfcXBJtgE2yCLfLvT7AJttyDbdpBsF0Fm2BDsD0zpzf+fifYBJtgE2yRTrxyD7a1RrAJNsGW4AVVRX4t7wbMKNgEm2DbRbBdMgu2046DrbRfCzbBts9gayIe6Q+zYHtUIdgEW8LB1kZYy6qIv7M+4WCzXws2wZZgsJUBXssl4oLTZRRsVQKLqWBLP9gu8zGDrY7web/7fq8Rf1+CTbBxsGALcdFfX/y7daRNNUawfZ5uTYJNsD1wLRUHDbYywuf97nd8ifRkYs3rebJXCzbSDbYQj+leWWy7AH+3ntMPtiLAo99QUTMKtmSDbQoQLbkG2xjgPb9yXfcR1/R3v+vTStfgYK8WbKQbbCHC6dnHOKFOnMo5TrDVG3++oaJmmNOePQXb+clYOyXw/t9dV/qIjwdfua5DhOIrN0Ehoqhe6RoUbIKNhIOtCfSantlwLgH+3rThwv5KoBZvbGCCLf9gOz3xOz4FXmtirSvFCzcoU6DHwK/+tssI63qI9btd6RrsZ3u1YCPZYCsDvabrgwtvE3lhCbHQjQ9s1teVFtTYp6mCLdzpy3WFWPuXwLryzDVWB/qbrwZbs/FNbxP5/W7xu0ewCbaVgu3VY/17IVP/cvd9CfgZNHPcO9PuzntsAz3uXSNq2jnt2VuwVXd+C9PKG2MqN4LdHydrdQJrWKgTpfqP1zAFjLVixWtQsAk2Eg+2S+CLflwWwnb5t9e4GywS+B7G5f21Gz5uFGzbBNsQMFzaG02gR4CpB9vt+282+AxirCX31pf2mzrwe21WvAbP9mrBRtrBVs55TZ/I95Bb1NSCbfNgiyGlYNvCu+tXbpFyXfEarGZ7tWAj6WD7t+EJUez3f+Rgq3b83gTbcYPt3RuR8aD7iGATbGQabLmEzPXN91kcONhOgu3hmQRbNtoA33eTyXtd+8a6mO3Vgo3kgy2XU7YqkQ0916gRbNu/nmd0gi3KujVlECtNRtcggk2wrbywlsvCler0gd7nNcJr7wJtLIJtu/e4dcBcIn/H777fNsK6WgS+RlPdP4oN1uacT5UFG4cLtq3u4l6ZMeAdcLfxax8CngTkGKu5Bts50ulJrsE2RIiec+DfYKqPRocN1ykEm2DL6M6/S2wj/7zzOyW8yP8215vQTCHYhjndSS3YtoqPJpFT1CrQb2vLaBtX+B2m9mh4q/VYsAk2Mgy21KIt9F1vueFj0CJwLO0txlMOtinSdZZ7sG0VbWs9DQh9g5jLzWU726cFG1kGWyqb+1qPKNZ+NNitdLr17vtuBVsSv7/il+trD8G2drQVS1iteapfH+RkTbAJNnYQbDGjbVr5fdYrvvbzio8jU37fewy2cYXfXvnHDcNegu2nU+ZQ+h1HTLHh+0v5UbBgQ7C9+Ohh2nDhuC6b2trvq19hcz89uaFtHTUnwRbktPSdR1zTyp9DSsH2dT2HfMS49U3ksNF69LVPjJGuv3K2Tws2sg+2r1OBte/6pl9Op9a6kw31aPTywElCCsH2b053/iX8/s4Brp9ho88htWC7Pa0q3rxeu4i/z27FqNliff1r7bVPCzZ2Emy372ONk6l3F/N3NoF3QuqZu+9Ugm2Y05yUg21efvfPbtinFyJjr8H2da03L1zrMU+efgq3OuDTixSux94eLdj4/zuoNpAykfdzfmOxGQMvfCEWzkdP26blRK184W+8+92HeK/tbEJs2MUvcdEGPL3d40w3n2P5y+d4TijUfnoP/fJdVw+sB+XNb6NP7L2EWlsQbGRygngbJN0Sc8O34HhkYYsdol/v47K8/q9F+bycmOT+XdV6IfgJ8eBj8DnezHV5L7lEe8ynNoIN4JfHwMYY8zXWRcEGJMrjOmPMvJwEWhMFG5Coi33KGPMxZ+uhYAPSVdmnjDEfc7IeCjYgbZO9yphDz2gdFGxA+jr7lTGHnot1ULAB6avtV8YcejwOFWxAJjwWNeaYM1r/BBvgsagxJu3xOFSwARk52beMOeSU1j/BBuRlsHcZc6gZrHuCDchPY/8y5lBTWfcEG5Cn0R5mzCFmtN4JNsApmzEm7Wmsd4INcMpmjEl3BuucYAPyV9nPjNn1VNY5wQbsQ29PM2aXc7G+CTZgPwqPRo3Z3VyXa9saJ9iAHTnZ34zZzUzLNW1tE2zADjX2OWN2MbX1TLABos0Yk+401jHBBog2Y4xYQ7ABiag+TPY/Y7KYz2v1ZN0SbMAxlR+u9kJjkp7rcq1aswQbcHCtPdGYJOfyobBGCTaA29O2wf5oTBIzfqisS4IN4J5KuBkTbablxNupmmADeDjcOvunMUINwQak73MDaT709lRjgs91ub6EmmADCBpv9YeLx6bGvDyfNz/nD6U1RbABbOW0RFy7PEL9DLnRnmzMf0/PhuUGp1muFWuGYANI8kSuWk4T2puTuS+TPd1kMtO3326//Ka/NMtvvXLdCzaAvStvNr0vzbeN8Uv/bQMVguZrxju/i/7Ob6n+4XdXuB4RbADpheFPznc2+HuGF007iqLf9E98ln99N4IKwQYAgGADABBsAAAINgAAwQYAgGADAECwAQAINgAABBsAAIINAECwAQAg2AAABBsAAIINAADBBgAg2AAAEGwAAIINAADBBgCAYAMAEGwAAAg2AAAEGwCAYAMAQLABAAg2AAAEGwAAgg0AQLABACDYAAAEmw8BAECwAQAg2AAABBsAAIINAADBBgAg2AAAEGwAAIINAADBBgCAYAMAEGwAAAg2AAB8CAAAgg0AAMEGACDYAAAQbAAACDYAAMEGAIBgAwAQbAAACDYAAAQbAIBgAwBAsAEA8OE/SZR9m3dtGpgAAAAASUVORK5CYII=); background-color: rgb(230, 45, 39); background-size: 60%; background-position: 50% 50%; background-repeat: no-repeat; }</style><style>.icon-cast_off::before { content: ""; }
-.icon-cast_on::before { content: ""; }
-.icon-mr_meh_android::before { content: ""; }
-.icon-settings-signin-android::before { content: ""; }
-.icon-settings-signout-android::before { content: ""; }
-.icon-rockandroll-back::before { content: ""; }
-.icon-hats-happy::before { content: ""; }
-.icon-hats-neutral::before { content: ""; }
-.icon-hats-sad::before { content: ""; }
-.icon-hats-very-happy::before { content: ""; }
-.icon-hats-very-sad::before { content: ""; }
-.icon-search-keyboard::before { content: ""; }
-.icon-multiaudio::before { content: ""; }
-.icon-settings-check::before { content: ""; }
-.icon-settings-uncheck::before { content: ""; }
-.icon-popular::before { content: ""; }
-.icon-airplane::before { content: ""; }
-.icon-back::before { content: ""; }
-.icon-check::before { content: ""; }
-.icon-chevron-single::before { content: ""; }
-.icon-delete::before { content: ""; }
-.icon-desktop-arrowkeys::before { content: ""; }
-.icon-desktop-delete::before { content: ""; }
-.icon-desktop-esc::before { content: ""; }
-.icon-desktop-g::before { content: ""; }
-.icon-desktop-s::before { content: ""; }
-.icon-dislike::before { content: ""; }
-.icon-double-chevron-right::before { content: ""; }
-.icon-edit::before { content: ""; }
-.icon-education::before { content: ""; }
-.icon-ellipsis::before { content: ""; }
-.icon-entertainment::before { content: ""; }
-.icon-exit::before { content: ""; }
-.icon-film::before { content: ""; }
-.icon-flag::before { content: ""; }
-.icon-gaming::before { content: ""; }
-.icon-guide-history::before { content: ""; }
-.icon-guide-my-subs::before { content: ""; }
-.icon-guide-purchases::before { content: ""; }
-.icon-guide-social::before { content: ""; }
-.icon-guide-what-to-watch::before { content: ""; }
-.icon-home::before { content: ""; }
-.icon-hourglass::before { content: ""; }
-.icon-key-delete::before { content: ""; }
-.icon-key-globe::before { content: ""; }
-.icon-key-space-sm::before { content: ""; }
-.icon-key-space::before { content: ""; }
-.icon-like::before { content: ""; }
-.icon-lips::before { content: ""; }
-.icon-logo-lozenge::before { content: ""; }
-.icon-lol::before { content: ""; }
-.icon-lozenge::before { content: ""; }
-.icon-mix::before { content: ""; }
-.icon-music::before { content: ""; }
-.icon-news::before { content: ""; }
-.icon-people::before { content: ""; }
-.icon-pets::before { content: ""; }
-.icon-player-3d::before { content: ""; }
-.icon-player-annotations::before { content: ""; }
-.icon-player-closedcaptions::before { content: ""; }
-.icon-player-ff::before { content: ""; }
-.icon-player-HD-circle::before { content: ""; }
-.icon-player-HD::before { content: ""; }
-.icon-player-info::before { content: ""; }
-.icon-player-instantreplay::before { content: ""; }
-.icon-player-less::before { content: ""; }
-.icon-player-more::before { content: ""; }
-.icon-player-mute::before { content: ""; }
-.icon-player-next::before { content: ""; }
-.icon-player-pause::before { content: ""; }
-.icon-player-play::before { content: ""; }
-.icon-player-prev::before { content: ""; }
-.icon-player-replay::before { content: ""; }
-.icon-player-rew::before { content: ""; }
-.icon-player-settings::before { content: ""; }
-.icon-player-share::before { content: ""; }
-.icon-player-size-fullscreen::before { content: ""; }
-.icon-player-size-medium::before { content: ""; }
-.icon-player-size-minimize::before { content: ""; }
-.icon-player-stop::before { content: ""; }
-.icon-player-subtitles::before { content: ""; }
-.icon-player-volume-45::before { content: ""; }
-.icon-player-volume-48::before { content: ""; }
-.icon-playlist::before { content: ""; }
-.icon-playstation-circle::before { content: ""; }
-.icon-playstation-square::before { content: ""; }
-.icon-playstation-triangle::before { content: ""; }
-.icon-playstation-x::before { content: ""; }
-.icon-privacy-link::before { content: ""; }
-.icon-privacy-locked::before { content: ""; }
-.icon-privacy-public::before { content: ""; }
-.icon-related::before { content: ""; }
-.icon-remoteque::before { content: ""; }
-.icon-reward::before { content: ""; }
-.icon-rocket::before { content: ""; }
-.icon-search-clear::before { content: ""; }
-.icon-search::before { content: ""; }
-.icon-settings-clear-cookies::before { content: ""; }
-.icon-settings-clear-history::before { content: ""; }
-.icon-settings-feedback::before { content: ""; }
-.icon-settings-help::before { content: ""; }
-.icon-settings-pair::before { content: ""; }
-.icon-settings-phone::before { content: ""; }
-.icon-settings-term::before { content: ""; }
-.icon-speechbubble::before { content: ""; }
-.icon-sports::before { content: ""; }
-.icon-star::before { content: ""; }
-.icon-trash::before { content: ""; }
-.icon-trends::before { content: ""; }
-.icon-tv-dpad::before { content: ""; }
-.icon-upload-arrow::before { content: ""; }
-.icon-upload::before { content: ""; }
-.icon-watch-later::before { content: ""; }
-.icon-wii-1::before { content: ""; }
-.icon-wii-2::before { content: ""; }
-.icon-wii-A::before { content: ""; }
-.icon-wii-B::before { content: ""; }
-.icon-wii-minus::before { content: ""; }
-.icon-wii-plus::before { content: ""; }
-.icon-wii-x::before { content: ""; }
-.icon-wii-y::before { content: ""; }
-.icon-youtube-logo::before { content: ""; }
-.icon-youtube-unlimited-logo::before { content: ""; }
-@font-face { font-family: 'Cutive Mono'; src: url(www.youtube.com/s/tv/fonts/CutiveMono-Regular.woff) format(woff); }
-@font-face { font-family: 'PT Mono'; src: url(www.youtube.com/s/tv/fonts/PTM55FT.woff) format(woff); }
-@font-face { font-family: 'PT Serif Caption'; src: url(www.youtube.com/s/tv/fonts/PT_Serif-Caption-Web-Regular.woff) format(woff); }
-@font-face { font-family: 'PT Sans Caption'; src: url(www.youtube.com/s/tv/fonts/PT_Sans-Caption-Web-Regular.woff) format(woff); }
-@font-face { font-family: Handlee; src: url(www.youtube.com/s/tv/fonts/Handlee-Regular.woff) format(woff); }
-@font-face { font-family: 'Dancing Script'; src: url(www.youtube.com/s/tv/fonts/DancingScript-Regular.woff) format(woff); }
-@font-face { font-family: 'Marcellus SC'; src: url(www.youtube.com/s/tv/fonts/MarcellusSC-Regular.woff) format(woff); }
-body, html { font-size: 100%; height: 100%; margin: auto; overflow: hidden; padding: 0px; -webkit-user-select: none; }
-input { font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; font-size: inherit; line-height: inherit; font-family: inherit; margin: 0px; padding: 0px; }
-body { background-color: rgb(28, 26, 26); }
-p, ul, li { border: 0px; margin: 0px; outline: none; padding: 0px; }
-ul { list-style: none; }
-.focused, :focus { outline: solid 0px; }
-.hidden { display: none !important; }
-.invisible { visibility: hidden; }
-ul.list li { display: inline; }
-ul.list.vertical li { display: block; }
-.device-plugin { height: 0px; margin: 0px; position: absolute; visibility: hidden; width: 0px; }
-#loader { }
-#leanback { height: 100%; }
-#app-markup { height: 100%; background-size: 100% 100%; }
-#background { bottom: 0px; left: 0px; position: absolute; overflow: hidden; right: 0px; top: 0px; background-size: 100% 100%; }
-.limited-memory.sets-ui #app-markup { background-color: rgb(40, 51, 55); }
-#app-markup.watch-state { background-color: rgb(0, 0, 0) !important; }
-.veryvibrant #app-markup.watch-state { background-image: none !important; }
-#playstation-buttons { display: none; position: absolute; }
-#spinner { position: absolute; top: 17.17em; width: 100%; }
-.browse-state .loading-indicator { display: none; }
-.browse-state .fallback-loading-indicator { display: block; }
-.opera #spinner { top: 20em; }
-.loading-indicator { height: 5.33em; margin: 0px auto; position: relative; width: 5.33em; }
-.dot { border-radius: 50%; height: 1.17em; position: absolute; width: 1.17em; background-color: rgb(203, 203, 203); }
-@-webkit-keyframes fade1 { 
-  0%,100% { opacity: 0; }
-  50% { opacity: 1; }
-}
-@-webkit-keyframes fade2 { 
-  0%,100% { opacity: 0.25; }
-  37.5% { opacity: 1; }
-  87.5% { opacity: 0; }
-}
-@-webkit-keyframes fade3 { 
-  0%,100% { opacity: 0.5; }
-  25% { opacity: 1; }
-  75% { opacity: 0; }
-}
-@-webkit-keyframes fade4 { 
-  0%,100% { opacity: 0.75; }
-  12.5% { opacity: 1; }
-  62.5% { opacity: 0; }
-}
-@-webkit-keyframes fade5 { 
-  0%,100% { opacity: 1; }
-  50% { opacity: 0; }
-}
-@-webkit-keyframes fade6 { 
-  0%,100% { opacity: 0.75; }
-  37.5% { opacity: 0; }
-  87.5% { opacity: 1; }
-}
-@-webkit-keyframes fade7 { 
-  0%,100% { opacity: 0.5; }
-  25% { opacity: 0; }
-  75% { opacity: 1; }
-}
-@-webkit-keyframes fade8 { 
-  0%,100% { opacity: 0.25; }
-  12.5% { opacity: 0; }
-  62.5% { opacity: 1; }
-}
-@keyframes fade1 { 
-  0%,100% { opacity: 0; }
-  50% { opacity: 1; }
-}
-@keyframes fade2 { 
-  0%,100% { opacity: 0.25; }
-  37.5% { opacity: 1; }
-  87.5% { opacity: 0; }
-}
-@keyframes fade3 { 
-  0%,100% { opacity: 0.5; }
-  25% { opacity: 1; }
-  75% { opacity: 0; }
-}
-@keyframes fade4 { 
-  0%,100% { opacity: 0.75; }
-  12.5% { opacity: 1; }
-  62.5% { opacity: 0; }
-}
-@keyframes fade5 { 
-  0%,100% { opacity: 1; }
-  50% { opacity: 0; }
-}
-@keyframes fade6 { 
-  0%,100% { opacity: 0.75; }
-  37.5% { opacity: 0; }
-  87.5% { opacity: 1; }
-}
-@keyframes fade7 { 
-  0%,100% { opacity: 0.5; }
-  25% { opacity: 0; }
-  75% { opacity: 1; }
-}
-@keyframes fade8 { 
-  0%,100% { opacity: 0.25; }
-  12.5% { opacity: 0; }
-  62.5% { opacity: 1; }
-}
-#dot1 { animation: fade8 0.72s ease infinite; left: 0px; top: 2.09em; }
-#dot2 { animation: fade7 0.72s ease infinite; left: 0.61em; top: 0.61em; }
-#dot3 { animation: fade6 0.72s ease infinite; left: 2.09em; top: 0px; }
-#dot4 { animation: fade5 0.72s ease infinite; right: 0.61em; top: 0.61em; }
-#dot5 { animation: fade4 0.72s ease infinite; right: 0px; top: 2.09em; }
-#dot6 { animation: fade3 0.72s ease infinite; bottom: 0.61em; right: 0.61em; }
-#dot7 { animation: fade2 0.72s ease infinite; bottom: 0px; left: 2.09em; }
-#dot8 { animation: fade1 0.72s ease infinite; bottom: 0.61em; left: 0.61em; }
-.spinner.transitions .dot { animation: initial !important; background: url(www.youtube.com/s/tv/html5/f0d770f4/img/circle.png) 50% 50% / 100% no-repeat; }
-.spinner.transitions.spin .loading-indicator { transition: transform 25s linear; transform: rotate(-7200deg); }
-.transitions #dot1 { opacity: 1; }
-.transitions #dot2 { opacity: 0.875; }
-.transitions #dot3 { opacity: 0.75; }
-.transitions #dot4 { opacity: 0.625; }
-.transitions #dot5 { opacity: 0.5; }
-.transitions #dot6 { opacity: 0.375; }
-.transitions #dot7 { opacity: 0.25; }
-.transitions #dot8 { opacity: 0.125; }
-.fallback-loading-indicator { color: rgb(241, 241, 241); display: none; font-size: 1.8em; margin: 2px auto 0px; text-align: center; }
-.scrollbar { height: 100%; position: absolute; top: 0px; width: 0.1em; background-color: rgba(255, 255, 255, 0.0980392); }
-.scrollbar .handle { position: absolute; width: 0.1em; background-color: rgb(241, 241, 241); }
-.application-message { color: rgb(241, 241, 241); font-size: 1.8em; position: absolute; text-align: center; text-shadow: rgb(0, 0, 0) 0.04em 0.04em; top: 50%; width: 100%; }
-.debug-watermark { color: rgb(14, 2, 2); display: none; font-size: 100%; left: 0px; padding: 1em; position: absolute; bottom: 0px; width: 70%; background-color: rgba(235, 49, 3, 0.701961); }
-.debug-watermark.visible { display: block; }
-.debug-console { color: rgb(255, 255, 255); height: 95%; overflow: scroll; padding: 1em; position: absolute; right: 0px; top: 0px; width: 40em; z-index: 1; background: rgba(0, 0, 0, 0.901961); }
-#player-controls .button, #player-controls .toggle-button { font-family: youtube-icons; speak: none; }
-.fps { position: absolute; right: 0px; bottom: 0px; text-align: center; padding-top: 0.3em; width: 5em; height: 1.7em; z-index: 100; background-color: rgb(0, 255, 0); }
-#html5-player-messages { display: none; }
-#button-list > .icon-player-more::before { content: ""; }
-.icon-player-play.toggle-selected::before { content: ""; }
-#loader { z-index: 1000; }
-.sliding-highlighter, .pivot-sliding-highlighter { box-shadow: rgba(153, 153, 153, 0.298039) 0px 0px 60px; display: none; height: 26em; position: absolute; width: 24em; background: white; }
-#settings-items .sliding-highlighter { height: 26.2em; width: 24.2em; }
-.horizontal-list.focused .sliding-highlighter, .video-uploads.focused .sliding-highlighter, #settings-items.focused .sliding-highlighter { display: block; }
-.video-uploads .sliding-highlighter { height: 20em; width: 18em; }
-.carousel .item:hover { cursor: pointer; background-color: rgb(90, 90, 90); }
-.feed-title.preview { color: rgb(241, 241, 241); font-size: 1.3em; height: 1.3em; opacity: 0.7; padding-bottom: 0.6em; padding-left: 1.9em; }
-.feed-title .unread-count { font-size: 0.6em; margin-left: 0.5em; padding: 0.05em 0.3em; position: relative; top: -0.265em; background-color: rgba(187, 0, 0, 0.901961); }
-.prev-feed { height: 3.6em; left: 4%; position: absolute; top: 5%; }
-.next-feed { height: 2em; left: 4%; position: absolute; top: 84%; }
-.tile { color: rgb(102, 102, 102); height: 26em; list-style: none; overflow: hidden; position: absolute; width: 24em; background-color: rgb(0, 0, 0); }
-.tile-focus-target { height: 0px; width: 0px; }
-.tile-top { height: 50%; width: 100%; background-color: rgb(0, 0, 0); }
-.channel-top { height: 62%; margin: 5.25% 16%; width: 68%; }
-.channel-top .video-thumb, .tile-top .video-thumb { height: 100%; background-color: rgb(37, 37, 37); background-size: 100%; background-position: 50% 50%; background-repeat: no-repeat; }
-.browse-header-avatar.preloaded, .tile-top .video-thumb.preloaded { background: url(www.youtube.com/s/tv/html5/f0d770f4/img/icon-playbutton.png) 50% 50% / auto no-repeat rgb(37, 37, 37); }
-.auto-play-tile { overflow: visible; }
-.post-play-title { font-size: 1.4em; overflow: hidden; position: absolute; text-overflow: ellipsis; text-shadow: rgb(0, 0, 0) 0.08em 0.08em; top: -1.8em; width: 15.5em; }
-.auto-play-tile .video-tile { top: 0px; }
-.auto-play-tile .default-title, .auto-play-tile .next-up-title { color: rgb(204, 204, 204); }
-.post-play-countdown { display: none; }
-.countdown-active .post-play-countdown { color: rgb(255, 255, 255); display: block; font-size: 5em; position: relative; text-align: center; text-shadow: rgb(0, 0, 0) 0.06em 0.06em; top: 14%; }
-.playlist-tile.focused, .playlist-tile.focused:hover, .auto-play-tile.focused .video-tile, .auto-play-tile.focused:hover .video-tile, .recent-search-tile.focused, .recent-search-tile.focused:hover, .video-tile.focused, .video-tile.focused:hover { background-color: rgb(241, 241, 241); }
-.item .overlay { display: none; }
-.playlist-tile .overlay, .video-tile .overlay { display: block; height: 53%; margin-left: 56%; margin-top: -57.5%; opacity: 0.8; width: 45%; background: rgb(0, 0, 0); }
-.playlist-tile.focused .overlay, .video-tile.focused .overlay { color: rgb(241, 241, 241); }
-.playlist-tile .overlay strong { font-size: 1.75em; font-weight: normal; }
-.playlist-tile .overlay .count, .video-tile .overlay .count { font-size: 1.5em; line-height: 1.2em; padding-top: 1.7em; text-align: center; }
-.playlist-tile .overlay .icon, .video-tile .overlay .icon { font-family: youtube-icons; font-size: 3em; height: 50%; overflow: hidden; padding: 0.2em; text-align: center; }
-.tile-bottom { height: 50%; padding: 0.25em 0px 0px 1em; width: 23em; }
-.channel-bottom { height: 25%; margin-top: 2.65em; width: 100%; }
-.channel-bottom .title, .tile-bottom .title { color: rgb(153, 153, 153); font-size: 1.7em; height: 2.45em; line-height: 1.25em; margin: 0.6em 0.6em 0px 0px; overflow: hidden; text-align: left; white-space: normal; }
-.channel-bottom .title { height: 1.2em; margin: 0px; padding: 0px 0.6em; text-align: center; text-overflow: ellipsis; white-space: nowrap; }
-.tile.selected.focused .tile-bottom { color: rgb(34, 34, 34); }
-.tile.selected.focused .channel-bottom .details, .tile.selected.focused .tile-bottom .details { color: rgb(153, 153, 153); }
-.tile.selected.focused .channel-bottom .title, .tile.selected.focused .tile-bottom .title { color: rgb(68, 68, 68); }
-.channel-tile .channel-top .decoration { margin-top: -19%; text-align: right; width: 97%; }
-.video-tile .tile-top .decoration { margin-top: -2em; text-align: right; width: 97.3%; }
-.channel-top .badge, .tile-top .badge, .tile-top .duration { border-radius: 0.1em; color: rgb(255, 255, 255); display: inline-block; font-size: 1.4em; padding: 0em 0.1em; background: rgba(0, 0, 0, 0.701961); }
-.tile-top .badge, .tile-top .duration { text-transform: uppercase; }
-.tile-top .live-badge { border: 0px; color: rgb(255, 255, 255); background-color: rgba(230, 33, 23, 0.8); }
-.playlist-tile:hover, .video-tile:hover { background-color: rgb(34, 34, 34); }
-.channel-tile .details, .playlist-tile .details, .recent-search-tile .details, .video-tile .details { color: rgb(153, 153, 153); font-size: 1.3em; font-weight: 300; height: 40%; overflow: hidden; padding: 0px; white-space: normal; word-break: break-all; }
-.channel-tile .details { text-align: center; }
-.playlist-tile .details, .recent-search-tile .details, .video-tile .details { margin: 0.7em 0em 0em; }
-.custom-playlist-image-tile .tile-top .video-thumb { background-size: 56.25%; background-position-x: 0%; background-repeat: no-repeat; }
-.playlist-tile.focused .details, .recent-search-tile.focused .details, .video-tile.focused .details { color: rgb(102, 102, 102); }
-.playlist-tile .details .by, .recent-search-tile .results, .video-tile .details .by { height: 1.4em; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
-.playlist-tile .details .views, .video-tile .details .views { display: inline-block; padding-right: 1.5em; }
-.playlist-tile .details .views:empty, .video-tile .details .views:empty { display: none; }
-.action-tile { border: 2px solid rgba(255, 255, 255, 0.0980392); color: rgb(255, 255, 255); height: 26em; overflow: visible; }
-.action-tile.focused, .channel-tile.focused { color: rgb(34, 34, 34); background-color: rgb(255, 255, 255); }
-.action-tile .content { height: 26em; white-space: normal; }
-.video-tile .live-start-time { display: inline-block; vertical-align: middle; }
-.tile-top .count-overlay { font-size: 1.4em; height: 100%; position: absolute; right: 0px; text-align: center; top: 0px; width: 30%; background: rgba(0, 0, 0, 0.74902); }
-.tile-top .count-overlay .video-count { display: block; font-size: 2.2em; font-weight: bold; line-height: 0.8em; margin-top: 1.6em; }
-.action-tile .title { font-size: 2.4em; height: 24%; overflow: hidden; padding-top: 0.5em; text-align: center; text-overflow: ellipsis; text-transform: uppercase; white-space: normal; }
-.action-tile .long-title { font-size: 2em; text-align: center; white-space: normal; }
-.action-tile .description, .action-tile .remote-pair-text, .action-tile .remote-reset-help { color: rgb(255, 255, 255); font-size: 1.4em; opacity: 0; padding: 0.5em; text-align: center; white-space: normal; }
-.action-tile.focused .description, .action-tile.focused .remote-pair-text, .action-tile.focused .remote-reset-help, .action-tile.focused .sign-out-username { opacity: 1; }
-.action-tile .sign-out-username { font-size: 1.7em; margin: 1em auto; overflow: hidden; text-align: center; text-overflow: ellipsis; white-space: nowrap; width: 80%; }
-.action-tile .remote-count { font-size: 0.4em; position: absolute; top: 40%; width: 100%; }
-.action-tile .remote-standing { display: inline-block; font-size: 1.4em; margin: 0.2em auto; padding: 0.8em 0.4em 0.1em; }
-.action-tile .remote-reset-help { height: 2.7em; }
-.action-tile .status { font-size: 2em; text-align: center; }
-.row-playing { display: none; }
-.action-tile .large-action-icon { font-family: youtube-icons; font-size: 11em; margin-top: 0px; text-align: center; width: 100%; }
-.action-tile .sign-out-user-icon { border-radius: 20em; height: 9em; margin: 0px auto; width: 9em; background-size: cover; }
-.action-tile .search-tile .description { font-size: 1.4em; margin-top: 2em; position: inherit; text-align: center; }
-.large-action-icon.icon-guide-history { font-size: 8em; margin-top: 0.2em; }
-.toggle-tile .icon { margin-top: 0px; }
-.toggle-tile .content .title { height: 12%; white-space: nowrap; }
-.toggle-tile .label { font-size: 1.8em; max-height: 13%; text-align: center; width: 100%; }
-.selected .icon-search, .tile.selected .icon-search-clear { color: rgb(34, 34, 34); }
-.exp-densityBrowse .horizontal-list > .content { font-size: 100%; }
-.exp-densityBrowse .horizontal-list .no-content-message { display: none; }
-.exp-densityBrowse .horizontal-list .pivot-sliding-highlighter { border: 0.5em solid rgb(255, 255, 255); box-shadow: rgb(0, 0, 0) 0.083em 0.083em 0.75em 0.167em inset; height: 7.5em; margin-left: -0.4em; margin-top: -0.4em; pointer-events: none; width: 13.8em; background: transparent; }
-.exp-densityBrowse .horizontal-list.focused .pivot-sliding-highlighter { display: block; }
-.exp-densityBrowse .horizontal-list.focused.channel-selected .pivot-sliding-highlighter { border-radius: 50%; height: 7.5em; transform: translateX(3.2em); width: 7.5em; }
-.exp-densityBrowse .browse-sets .action-tile, .exp-densityBrowse .horizontal-list .channel-tile, .exp-densityBrowse .horizontal-list .video-tile { height: 14em; width: 14em; }
-.exp-densityBrowse .shelf .horizontal-list .channel-tile, .exp-densityBrowse .shelf .horizontal-list .video-tile, .exp-densityBrowse .shelf .horizontal-list .channel-tile.selected, .exp-densityBrowse .shelf .horizontal-list .video-tile.selected { opacity: 0.5; }
-.exp-densityBrowse .shelf.selected .horizontal-list .channel-tile, .exp-densityBrowse .shelf.selected .horizontal-list .video-tile, .exp-densityBrowse .horizontal-list .channel-tile, .exp-densityBrowse .horizontal-list .video-tile { opacity: 0.7; }
-.exp-densityBrowse .shelf.selected .horizontal-list .channel-tile.selected, .exp-densityBrowse .shelf.selected .horizontal-list .video-tile.selected, .exp-densityBrowse .horizontal-list .channel-tile.selected, .exp-densityBrowse .horizontal-list .video-tile.selected, .exp-densityBrowse .horizontal-list .auto-play-tile.selected .video-tile, .limited-animation .exp-densityBrowse .shelf .horizontal-list .channel-tile, .limited-animation .exp-densityBrowse .shelf .horizontal-list .video-tile, .limited-animation .exp-densityBrowse .shelf .horizontal-list .channel-tile.selected, .limited-animation .exp-densityBrowse .shelf .horizontal-list .video-tile.selected, .limited-animation .exp-densityBrowse .shelf.selected .horizontal-list .channel-tile, .limited-animation .exp-densityBrowse .shelf.selected .horizontal-list .video-tile, .limited-animation .exp-densityBrowse .horizontal-list .channel-tile, .limited-animation .exp-densityBrowse .horizontal-list .video-tile { opacity: 1; }
-.exp-densityBrowse .horizontal-list .tile-top { height: 7.83em; }
-.exp-densityBrowse .channel-top .badge, .exp-densityBrowse .tile-top .badge { font-size: 1em; padding: 0.2em; }
-.exp-densityBrowse .horizontal-list .tile-bottom, .exp-densityBrowse .horizontal-list .channel-bottom { height: 4.25em; margin-top: 0.83em; padding: 0px; width: 100%; }
-.exp-densityBrowse .shelf .horizontal-list .tile-bottom, .exp-densityBrowse .shelf .horizontal-list .channel-bottom { display: none; }
-.exp-densityBrowse .shelf.selected .horizontal-list .tile-bottom, .exp-densityBrowse .shelf.selected .horizontal-list .channel-bottom { display: block; }
-.exp-densityBrowse .browse-sets .action-tile .description, .exp-densityBrowse .horizontal-list .tile-bottom .title, .exp-densityBrowse .horizontal-list .channel-bottom .title { font-size: 1.16em; height: initial; line-height: 1.25em; margin: 0px; max-height: 2.5em; text-overflow: ellipsis; }
-.exp-densityBrowse .horizontal-list .channel-bottom .title { white-space: normal; }
-.exp-densityBrowse .horizontal-list .video-tile .details { color: rgb(205, 205, 205); font-size: 0.83em; height: initial; margin: 0.4em 0px; }
-.exp-densityBrowse .horizontal-list .video-tile .tile-top .decoration { display: none; line-height: 1em; margin-top: 0px; transform: translateY(-100%); width: 100%; }
-.exp-densityBrowse #search .tile-top .decoration, .exp-densityBrowse #post-play-list .tile-top .decoration, .exp-densityBrowse .shelf.selected .horizontal-list .tile-top .decoration { display: block; }
-.exp-densityBrowse .horizontal-list .video-tile .tile-top .badge { border-radius: 0px; }
-.exp-densityBrowse .horizontal-list .video-tile .tile-top .duration { font-size: 1em; font-weight: bold; padding: 0.5em; background: rgba(0, 0, 0, 0.498039); }
-.exp-densityBrowse .horizontal-list .channel-bottom .details { display: none; }
-.exp-densityBrowse .horizontal-list .video-tile .details .views, .exp-densityBrowse .horizontal-list .video-tile .details .age { display: inline-block; }
-.exp-densityBrowse .horizontal-list .video-tile .details .views { padding-right: 0.5em; }
-.sets-ui .exp-densityBrowse .horizontal-list .channel-tile.selected .channel-bottom > .title, .sets-ui .exp-densityBrowse .horizontal-list .auto-play-tile.selected .tile-bottom > .title, .sets-ui .exp-densityBrowse .horizontal-list .video-tile.selected .tile-bottom > .title { color: rgb(255, 255, 255); }
-.exp-densityBrowse .video-tile .overlay { height: 7.83em; margin-left: 60%; margin-top: -7.83em; width: 40%; }
-.exp-densityBrowse .video-tile .overlay .count { font-size: 1em; line-height: 1em; padding-top: 1.5em; }
-.exp-densityBrowse .video-tile .overlay .icon { font-size: 2em; padding: 0px; }
-.exp-densityBrowse .horizontal-list .channel-top { height: 7.83em; margin: 0px auto; width: 7.83em; }
-.exp-densityBrowse .horizontal-list .channel-top .video-thumb { border-radius: 50%; }
-.exp-densityBrowse .browse-sets .shelf > .title { font-size: 1em; margin-bottom: 0.9em; margin-top: 0px; }
-.exp-densityBrowse .browse-sets .shelf > .title .main { font-size: 1.5em; }
-.exp-densityBrowse .browse-sets .shelf > .title .annotation { font-size: 1em; }
-.exp-densityBrowse .browse-sets .shelf > .title { color: rgb(205, 205, 205); }
-.engaged.exp-densityBrowse .channel-tile .voice-command, .engaged.exp-densityBrowse .video-tile .voice-command { font-size: 1em; line-height: 1em; margin-top: -2em; }
-.limited-animation.sets-ui .exp-densityBrowse .video-tile:hover:not(.focused), .limited-animation.sets-ui .exp-densityBrowse .channel-tile:hover:not(.focused), .sets-ui .exp-densityBrowse .carousel .item:hover, .sets-ui .exp-densityBrowse .carousel .auto-play-tile:hover, .sets-ui .exp-densityBrowse .carousel .channel-tile:hover { opacity: 1; background-color: inherit !important; }
-.exp-densityBrowse .browse-sets .action-tile { border: none; }
-.exp-densityBrowse .browse-sets .action-tile .content { height: 7.83em; margin-bottom: 0.83em; }
-.exp-densityBrowse .browse-sets .action-tile .title { display: none; }
-.exp-densityBrowse .browse-sets .action-tile .large-action-icon { color: rgb(255, 255, 255); font-size: 6em; height: 1.3em; line-height: 1.3em; background-color: rgb(35, 35, 35); }
-.exp-densityBrowse .browse-sets .action-tile .description { opacity: inherit; padding: 0px; }
-.exp-densityBrowse .auto-play-tile { height: 14em; width: 14em; }
-.exp-densityBrowse .post-play-countdown { top: 7%; }
-.limited-animation .exp-densityBrowse .browse-content .list { margin-left: -7.5em; width: inherit; }
-.limited-animation .exp-densityBrowse .browse-content .shelf > .title { margin-left: 7.5em; }
-.limited-animation .exp-densityBrowse .browse-content .list .shelf:nth-child(1) { margin-bottom: 6.5em; }
-.limited-animation .exp-densityBrowse .browse-content .list .shelf { margin-bottom: -0.1em; }
-.limited-animation.sets-ui .exp-densityBrowse .channel-tile:not(.focused), .limited-animation.sets-ui .exp-densityBrowse .video-tile:not(.focused) { background-color: inherit; }
-.limited-animation .exp-densityBrowse .channel-tile.focused, .limited-animation .exp-densityBrowse .video-tile.focused { background-color: inherit; }
-.limited-animation .exp-densityBrowse .video-tile { margin-right: 0.5em; }
-.limited-animation .exp-densityBrowse .video-tile .overlay { height: 7.03em; margin-left: 8em; margin-top: -7.43em; width: 5.6em; }
-.limited-animation .exp-densityBrowse .video-tile .tile-top { height: 7.03em; padding: 0.4em; width: 13.2em; background: inherit; }
-.limited-animation .exp-densityBrowse .channel-tile { margin-right: 0.5em; }
-.limited-animation .exp-densityBrowse .channel-tile .channel-top { height: 6.83em; padding: 0.4em; width: 6.83em; }
-.limited-animation .exp-densityBrowse .video-tile.focused .tile-top { background: rgb(255, 255, 255); }
-.limited-animation .exp-densityBrowse .channel-tile.focused .channel-top { border-radius: 50%; background: rgb(255, 255, 255); }
-.limited-animation .exp-densityBrowse .search .placeholder-tile, .limited-animation .exp-densityBrowse .browse-content .list .placeholder-tile { height: 14em; margin-right: 0.5em; width: 14em; }
-#dialog.remote-reset-dialog > .title { font-size: 3em; padding-bottom: 0.5em; }
-#dialog.remote-reset-dialog .buttons { bottom: 0.5em; position: absolute; }
-#dialog.remote-reset-dialog { left: 0px; position: absolute; white-space: normal; }
-.remote-reset-dialog #dialog-view { color: rgb(170, 170, 170); font-size: 1.8em; padding-top: 0.5em; }
-.connection-instructions { padding-top: 0.5em; font-size: 2em; }
-.text-dialog .connection-instructions { font-size: 1.3em; }
-.browse-sets-state .login-dialog { margin-top: 5em; }
-#search .pairing .pairing-content > *, #dialog .pairing .pairing-content > * { display: inline-block; }
-#search .pairing .pairing-content .step2, #dialog .pairing .pairing-content .step2 { display: block; }
-#search .dial-upsell .connection-steps .no-dial-connect-step1, #search .manual-connect .connection-steps .with-dial-connect-step1 { display: none; }
-.connection-instructions .step1, .connection-instructions .step2, .qr-code .scan, .pairing .connected-header, .remote-reset-dialog .connected-header { color: rgb(170, 170, 170); font-size: 0.7em; }
-.connection-instructions .pair-url, .connection-instructions .pair-code { color: rgb(241, 241, 241); }
-.connection-instructions .step2 { margin-top: 2em; }
-.pairing .qr-code, .pairing .connected-list { display: inline-block; margin-left: 1em; vertical-align: top; }
-.pairing .dial-upsell { color: rgb(170, 170, 170); display: inline-block; font-size: 95%; overflow: hidden; padding-left: 2em; padding-top: 0.8em; text-align: initial; vertical-align: top; white-space: normal; width: 16em; }
-.pairing .cast-icon { display: inline-block; height: 1em; margin: 0.1em 0.3em; vertical-align: middle; width: 1em; background: url(www.youtube.com/s/tv/html5/f0d770f4/img/cast_disconnected_blue.png) 50% 50% / contain no-repeat; }
-.pairing .qr-code .scan { margin-bottom: 0.5em; white-space: normal; width: 5em; }
-.pairing .qr-code img { height: 5.1em; width: 5.1em; }
-.pairing .icon-settings-pair, .login-dialog .icon-settings-pair { display: inline-block; font-style: normal; font-variant: normal; font-weight: normal; font-stretch: normal; font-size: 5em; line-height: normal; font-family: youtube-icons; height: 1em; margin-top: 0.1em; width: 1.4em; background-image: none; }
-.remote-reset-dialog .connected-header, .pairing .connected-header { margin-bottom: 0.3em; }
-.remote-reset-dialog .devices, .pairing .devices { list-style: none; font-size: 1.5em; color: rgb(241, 241, 241); }
-.remote-reset-dialog .devices > div, .pairing .devices > div { display: block; height: 1.5em; line-height: 1.5em; overflow: hidden; padding-left: 1.5em; text-overflow: ellipsis; white-space: nowrap; width: 11.5em; }
-.remote-reset-dialog .devices .connected::before { background-position: 0px 100%; }
-.remote-reset-dialog .devices .connected { color: rgb(241, 241, 241); }
-#search { bottom: 0px; color: rgb(241, 241, 241); left: 0px; overflow: hidden; position: absolute; right: 0px; text-align: center; top: 0px; }
-.watch-state #search { left: 0px; }
-#search > .controls { left: 8em; margin-right: 18em; position: absolute; right: 2.5em; text-align: left; top: 2.5em; }
-#search-text-box { font-size: 1.6em; height: 100%; margin: 0px auto; overflow: hidden; position: relative; background-color: rgb(225, 225, 225); }
-#search-text-box > .icon-search { display: none; }
-#search-input { border: none; color: rgb(17, 17, 17); height: 100%; padding-left: 0.5em; width: 100%; background: none; }
-#search-input:disabled { color: rgb(17, 17, 17); }
-#search-query { color: rgb(17, 17, 17); height: 100%; overflow: hidden; padding-left: 0.5em; padding-top: 0.3em; position: absolute; text-overflow: ellipsis; white-space: pre; width: 95%; }
-#search-suggestions { font-size: 1.2em; position: relative; display: inline-block; left: 0px; width: 100%; }
-.search-state #spinner { top: 26em; }
-#suggest-list { overflow: hidden; }
-#suggest-list > div { border-radius: 1px; color: rgb(225, 225, 225); display: inline-block; padding: 0.2em 0.5em; }
-#search-keyboard { font-size: 1em; text-align: left; width: 65%; }
-#search-suggestions, #search-keyboard, #letter-suggest { white-space: nowrap; }
-#search-keyboard, #letter-suggest { z-index: 1; }
-#keyboard-grid { display: inline-block; font-size: 1.6em; margin: 0px auto; overflow: hidden; text-align: left; }
-#keyboard-grid, #keyboard-spacebar { color: rgb(163, 163, 163); }
-#keyboard-grid .button { border-radius: 1px; display: inline-block; margin: 0.3em 0.6em 0.3em 0px; padding: 0px 0.1em; text-align: center; text-transform: uppercase; width: 1em; vertical-align: top; }
-#keyboard-grid .list { text-align: left; text-shadow: none; }
-#search-keyboard #keyboard-grid .icon-key-delete.button { font-family: youtube-icons; font-size: 0.7em; line-height: 1.2em; margin-left: 2.25em; padding: 0.25em; width: 2.25em; }
-#keyboard-spacebar { border-radius: 1px; display: inline-block; font-family: youtube-icons; font-size: 1.44em; margin: 0.1em 7em 0px 2.1em; padding: 0.1em; text-align: left; }
-#search-keyboard #keyboard-grid .clear-query-tile.button { font-size: 0.7em; margin-left: 2.25em; padding: 0.25em; text-transform: uppercase; width: auto; }
-#keyboard-grid .icon-key-globe { font-family: youtube-icons; margin: 0.25em 0px 0.25em 1.6em; padding: 0.1em; width: 1.2em; }
-#search-keyboard .button.focused { color: rgb(33, 33, 33); background-color: rgb(225, 225, 225); }
-#letter-suggest { font-size: 1.6em; position: fixed; text-align: center; width: 1.2em; }
-.letter-suggest-visible #keyboard-grid .list.selected .button.selected:not(.focused) { color: rgb(0, 0, 0); text-shadow: none; background-color: rgba(153, 153, 153, 0.85098); }
-#keyboard-grid .button.numbers-toggle-tile { font-size: 0.75em; padding: 0.22em; margin: 0.25em 0px 0px 2.1em; width: auto; }
-#search .pairing .icon-settings-pair { display: none; }
-#search .search-message { display: inline-block; margin-left: 2em; margin-top: 1.5em; vertical-align: top; white-space: normal; width: 50%; }
-#search .search-pairing { bottom: 0px; display: inline-block; left: 5em; padding: 2em 2.5em 4em; position: absolute; text-align: left; text-shadow: black -1px 1px 2px; width: 100%; background-color: rgba(0, 0, 0, 0.298039); }
-.limited-animation #search .search-pairing { background-color: rgb(0, 0, 0); }
-#search .search-pairing .search-img { display: inline-block; height: 11em; width: 11em; background-image: url(www.youtube.com/s/tv/html5/f0d770f4/img/pair_promo.png); background-size: cover; }
-#search .search-pairing .title { font-size: 1.9em; }
-#search .search-pairing .connection-instructions { font-size: 1.6em; }
-#search .search-pairing .dial-upsell-content { color: rgb(170, 170, 170); }
-#search .search-pairing .manual-connect-content .connection-steps { padding: 0px; }
-#search .search-pairing .manual-connect-content .connection-steps .pair-code, #search .search-pairing .manual-connect-content .connection-steps .pair-url { display: block; }
-#search .search-pairing .manual-connect-content .connection-steps .step2 { margin-top: 1em; }
-#search .search-pairing .manual-connect-content .connection-steps .label, #search .search-pairing .manual-connect .dial-upsell-content, #search .search-pairing .dial-upsell .manual-connect-content { display: none; }
-#search .pairing .no-dial-connect-step1, #search .pairing .no-dial-connect-step2 { display: inline-block; }
-#search .pairing .no-dial-connect-step2 { margin-left: 2em; }
-#search .pairing .connection-steps { text-align: left; }
-#search .pairing .connected-list, #search .pairing .qr-code-wrapper { display: none; }
-#search.hide-input .search-pairing { margin-top: 8em; }
-#letter-suggest div { color: rgba(0, 0, 0, 0.8); height: 1.4em; text-shadow: none; background-color: rgba(153, 153, 153, 0.85098); }
-#letter-suggest .focused { color: rgb(241, 241, 241); }
-#transliteration-container { display: none; }
-#search-keyboard.transliterable #transliteration-container { display: block; }
-#transliteration .list { font-size: 2em; height: 1.2em; margin: 0px auto; overflow: hidden; padding: 0.2em 0px; text-align: center; width: 77%; }
-#transliteration .list > div { display: inline; padding: 0px 0.5em; position: relative; }
-#suggest-list > div.focused, #transliteration .list .focused { color: rgb(33, 33, 33); background-color: rgb(254, 254, 254); }
-#transliteration .button:hover { background-color: rgba(153, 153, 153, 0.4); }
-#transliteration .button:hover, #search-keyboard .button:hover { cursor: pointer; }
-#search .horizontal-list > .content { text-align: left; }
-.limited-animation.sets-ui #search .horizontal-list > .content { margin-left: -21.8em; width: 126em; }
-#search .horizontal-list { left: 7.5em; height: inherit; position: absolute; right: 0px; top: 38%; transform: translateY(7.5em); transition: opacity 0.25s, transform 0.25s; width: initial; }
-#search.input-collapsed .horizontal-list { transform: none !important; }
-#search-keyboard { transition: opacity 0.25s, transform 0.25s; transform-origin: 50% top 0px; }
-#search-keyboard.hidden { opacity: 0; transform: scaleY(0.5); display: block !important; }
-#search #search-text-entry { height: 2.4em; }
-#search #search-suggestions, #search #search-text-entry { padding-top: 0.25em; transform-origin: 50% top 0px; transition: opacity 0.25s, transform 0.25s; background-color: rgba(0, 0, 0, 0); }
-.limited-animation #search .horizontal-list, .limited-animation #search #search-suggestions, .limited-animation #search #search-text-entry, .limited-animation #search #search-keyboard { transition: none; }
-#search-text-entry { padding-bottom: 0.4em; }
-#search-text-entry, #text-box-background { height: 3em; }
-#keyboard-icon { display: none; font-family: youtube-icons; font-size: 1.2em; padding-bottom: 0.4em; text-align: center; vertical-align: bottom; width: 2em; }
-.input-collapsed #keyboard-icon { display: inline-block; }
-#search-text-entry .suggestions-container { white-space: nowrap; overflow: hidden; height: 2.4em; }
-.exp-densityBrowse #search .horizontal-list { font-size: 100%; height: 14em; top: 35%; transform: translateY(8em); }
-.limited-animation .exp-densityBrowse #search .horizontal-list .list { margin-left: -14em; }
-.exp-densityBrowse #search .horizontal-list .video-tile { height: 14em; }
-.exp-densityBrowse #search .horizontal-list .video-tile .details .views, .exp-densityBrowse #search .horizontal-list .video-tile .details .age { display: inline-block; }
-.exp-densityBrowse #search .horizontal-list .video-tile .details .views { padding-right: 0.5em; }
-.limited-animation.sets-ui .exp-densityBrowse #search .horizontal-list > .content { margin-left: 0px; width: inherit; }
-#player { height: 100%; width: 100%; }
-.watch-state #watch { display: block; }
-.veryvibrant #watch { height: 100%; background-color: rgb(0, 0, 0); }
-#player-facade { height: 100%; position: absolute; width: 100%; }
-#player-video { height: 100%; }
-#watch, .dialog-focused .standard-caption-window, #caption-window-99, .countdowntimer, .ytp-cued-icon, .ytp-fallback, .html5-context-menu, .html5-dialog-holder, .html5-endscreen, .html5-info-bar, .html5-modal-panel, .html5-player-chrome, .html5-show-video-info-template, .html5-storyboard, .html5-text-button, .html5-video-player .hid, .html5-ypc-module, .player-actions-container, .video-ad-status-bar, .video-annotations, .html5-watermark, .video-fallback-content, .video-ads, .title-card.hidden { display: none; }
-.html5-video-player { overflow: visible; }
-.html5-video-info-panel { color: rgb(241, 241, 241); display: none; margin: 20%; position: absolute; top: 0px; z-index: 1; background-color: rgba(0, 0, 0, 0.701961); }
-.html5-video-info-panel-close { display: none; }
-.html5-video-info-panel-content > div > div { display: inline-block; font-weight: bold; padding: 0px 0.5em; text-align: right; width: 10em; }
-.ad-video { width: 100%; height: 100%; }
-.ad-showing .video-ads { display: block; overflow: hidden; }
-.ad-interrupting.tag-pool-enabled .html5-main-video { position: absolute; left: -1px; top: -1px; overflow: hidden; width: 1px !important; height: 1px !important; }
-.html5-video-player .video-stream { position: absolute; top: 0px; left: 0px; display: block; }
-.opera .video-stream { height: 720px; width: 1280px; }
-.advertisement-info, .skip-ad-button { position: absolute; top: 9.5em; }
-.advertisement-info { left: 12.5%; text-align: left; width: 30%; overflow: hidden; }
-.advertisement-info-top { height: 3em; }
-.advertisement-avatar { width: 3em; height: 3em; display: inline-block; margin-right: 0.4em; background-size: contain; background-position: 100% 50%; background-repeat: no-repeat; }
-.advertisement-info-details { display: inline-block; vertical-align: top; width: 79%; }
-.advertisement-title, .advertisement-advertiser, .third-party { color: rgb(255, 255, 255); text-shadow: rgb(0, 0, 0) 2px 1px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
-.third-party { position: absolute; bottom: 0px; }
-.advertisement-title { font-size: 1.4em; line-height: 1em; height: 1.1em; }
-.advertisement-advertiser { font-size: 1.1em; line-height: 1.3em; height: 1.4em; }
-.advertisement-info .ad-badge { padding: 1px 5px; text-shadow: none; border-radius: 0.15em; font-size: 0.9em; text-transform: capitalize; background-color: rgb(230, 188, 39); }
-.skip-ad-button { right: 12.5%; border-radius: 0.15em; padding: 0.6em; background-color: rgba(0, 0, 0, 0.4); }
-.canskip.mdx-skip.skip-ad-button { height: 4em; width: 18em; }
-.canskip.mdx-skip .skip-button-text { font-size: 1.1em; height: 3em; left: 2em; line-height: 1.5em; position: absolute; top: 0.7em; width: 75%; }
-#transport-controls.ad-active .player-controls #button-list div.skip-ad-button .label, .skip-ad-button .label { font-size: 1.1em; padding: 0px 1.4em; height: 2.5em; line-height: 2.5em; border-radius: 0.12em; cursor: pointer; color: rgb(225, 225, 225); background-color: rgba(0, 0, 0, 0); }
-.skip-ad-button.canskip.mdx-skip .label { height: 3.7em; }
-#transport-controls.ad-active .player-controls #button-list div.skip-ad-button.canskip:hover .label, .skip-ad-button.canskip:hover .label { color: rgb(33, 33, 33); border-radius: 0.12em; background-color: rgb(255, 255, 255); }
-#transport-controls.ad-active .player-controls #button-list div.skip-ad-button.canskip.focused .label, .skip-ad-button.canskip.focused .label { color: rgb(33, 33, 33); border-radius: 0.12em; background-color: rgb(225, 225, 225); }
-.skip-ad-button .skip-symbol { display: none; font-family: youtube-icons; }
-.skip-ad-button.canskip .skip-symbol.icon-player-next { display: inline; font-size: 1.3em; margin-left: 0.5em; vertical-align: middle; }
-.exp-newMdxSkipButtonCast .canskip.mdx-skip.skip-ad-button .skip-symbol.icon-cast_on { display: inline; font-size: 2.5em; position: absolute; right: 0.7em; text-align: right; top: 0.5em; width: 25%; }
-.exp-newMdxSkipButtonPair .canskip.mdx-skip.skip-ad-button .skip-symbol.icon-settings-pair { display: inline; font-size: 4em; position: absolute; right: 0.4em; text-align: right; top: 0.3em; width: 25%; }
-.canskip.mdx-skip.skip-ad-button .skip-symbol.icon-player-next { display: none; }
-#player-controls { text-align: center; }
-#bottom-half { bottom: 0px; height: 50%; position: absolute; width: 100%; }
-#transport-controls { bottom: 0px; height: 100%; position: absolute; transition: transform 0.25s, opacity 0.25s; width: 100%; background: linear-gradient(rgba(0, 0, 0, 0), rgb(0, 0, 0)); }
-#transport-controls.hidden { opacity: 0; display: block !important; }
-.limited-animation #transport-controls.hidden { display: none !important; }
-#transport-controls, #transport-controls.focused { display: block; }
-.player-controls-widget { border: 0px; margin-top: 8.4em; }
-.fresh-transport-controls.seeking-forward .seeking-icon.icon-player-rew::before { content: ""; }
-.seeking-icon { bottom: 3em; color: rgb(255, 255, 255); display: none; position: absolute; left: 0px; margin: 0px auto; right: 0px; }
-.seeking-icon span { display: none; }
-.fresh-watch.watch-seeking .seeking-icon { display: block; }
-.fresh-watch .title-card { height: 35.9%; background: linear-gradient(rgba(0, 0, 0, 0.74902), transparent); }
-#transport-controls.fresh-transport-controls { background: linear-gradient(to top, rgb(0, 0, 0), transparent); }
-.fresh-watch .player-video-title { color: rgb(255, 255, 255); font-size: 1.936em; }
-.fresh-watch .player-meta .player-video-details { color: rgba(255, 255, 255, 0.701961); font-size: 1.455em; }
-.fresh-watch .pivot-shelf-list { margin-top: 14.5em; padding-left: 3.871em; }
-#fresh-rows-container { border: 0px; color: rgb(255, 255, 255); margin-top: 7.7em; }
-.fresh-transport-controls .storyboards { position: absolute; }
-.fresh-transport-controls .more-row, .fresh-transport-controls .main-row { margin-left: 5%; width: 95%; }
-.fresh-transport-controls .button span, .fresh-transport-controls .toggle-button span { display: none; font-family: roboto-regular; color: rgb(255, 255, 255); }
-.lang-case-sensitive .fresh-transport-controls span::first-letter { text-transform: uppercase; }
-.fresh-transport-controls .button.disabled:hover, .fresh-transport-controls .toggle-button.disabled:hover { background-color: transparent; }
-.fresh-transport-controls .button.disabled, .fresh-transport-controls .toggle-button.disabled { opacity: 0.45; }
-.fresh-transport-controls .button.focused, .fresh-transport-controls .toggle-button.focused, .fresh-transport-controls .button:hover, .fresh-transport-controls .toggle-button:hover { color: rgb(255, 255, 255); background-color: rgba(255, 255, 255, 0.498039); }
-.fresh-transport-controls .button, .fresh-transport-controls .toggle-button, .seeking-icon { border-radius: 4px; font-family: youtube-icons; font-size: 1.4em; height: 1em; padding: 0.55em; speak: none; text-align: center; width: 1em; }
-.fresh-transport-controls .button, .fresh-transport-controls .toggle-button { color: rgba(255, 255, 255, 0.701961); cursor: pointer; display: inline-block; position: relative; }
-.fresh-transport-controls #transport-more-button::before { display: inline-block; left: 19%; position: absolute; top: -9%; }
-.fresh-transport-controls #transport-more-button { font-size: 2em; height: 0.7em; margin-right: 1.452em; padding: 0.385em; width: 0.7em; }
-.fresh-transport-controls #transport-more-button span { color: rgb(255, 255, 255); display: inline-block; font-size: 0.485em; left: 4.5em; position: absolute; text-align: left; top: 1em; width: 15em; }
-.fresh-transport-controls #transport-more-button.top-row-active span { display: none; }
-.fresh-transport-controls #transport-more-options-list { display: inline-block; }
-.fresh-transport-controls .progress-bar { display: inline-block; height: 3em; left: 0px; padding: 0px; position: relative; top: 0px; width: 76.55%; }
-.fresh-transport-controls.live-playback #play-pause-button { margin-right: 1em; }
-.fresh-transport-controls.live-playback .progress-bar { width: 77.55%; }
-.fresh-transport-controls.live-playback .live-indicator { display: inline-block; left: 0px; margin-left: 1em; position: relative; top: 0px; }
-.fresh-transport-controls #player-time-elapsed, .fresh-transport-controls .player-time-total { color: rgb(255, 255, 255); display: inline-block; font-size: 1.3em; position: relative; text-align: center; top: 0px; width: 8%; }
-.fresh-transport-controls .more-row { margin-bottom: 5px; }
-.fresh-transport-controls .more-row .button, .fresh-transport-controls .more-row .toggle-button { margin-right: 2.075em; vertical-align: top; }
-.fresh-transport-controls .icon-like.toggle-selected, .fresh-transport-controls .icon-dislike.toggle-selected, .fresh-transport-controls .icon-player-closedcaptions.toggle-selected { color: rgb(39, 147, 230); }
-.fresh-transport-controls .icon-logo-lozenge.toggle-selected { color: rgb(255, 0, 0); }
-.fresh-transport-controls .more-row .button span, .fresh-transport-controls .more-row .toggle-button span { font-size: 0.692em; left: -3.45em; position: relative; top: -4.4em; width: 8.3em; }
-.fresh-transport-controls .more-row .button.focused span, .fresh-transport-controls .more-row .toggle-button.focused span, .fresh-transport-controls .more-row .button:hover span, .fresh-transport-controls .more-row .toggle-button:hover span { display: inline-block; }
-.fresh-transport-controls .progress-bar .progress-bar-line div { height: 0.242em; }
-.fresh-transport-controls .progress-bar .progress-bar-line .progress-bar-background { background-color: rgba(255, 255, 255, 0.45098); }
-.fresh-transport-controls .progress-bar .progress-bar-line .progress-bar-loaded { background-color: rgb(255, 255, 255); }
-.fresh-transport-controls .progress-bar .progress-bar-line .progress-bar-played { background-color: rgb(223, 35, 35); }
-.fresh-transport-controls .progress-bar.ad-active .progress-bar-played { background-color: rgb(231, 189, 0); }
-.ypc-playback .fresh-transport-controls .progress-bar-line .progress-bar-played { background-color: rgb(39, 147, 230); }
-.fresh-watch .ad-point-separator, .fresh-transport-controls .progress-bar .progress-bar-disc, .fresh-transport-controls.ad-active #player-time-elapsed, .fresh-transport-controls.ad-active .player-time-total { display: none; }
-.fresh-transport-controls.ad-active .progress-bar { padding-left: 1em; width: 88%; }
-.fresh-transport-controls.ad-active .more-row, .fresh-watch.watch-seeking .more-row { visibility: hidden; }
-.fresh-watch .skip-ad-button, .fresh-watch .advertisement-info { top: 6.7em; }
-.fresh-watch .advertisement-info { left: 5%; }
-.fresh-watch .advertisement-info .advertisement-info-top { height: 3.065em; position: relative; }
-.fresh-watch .skip-ad-button { border-radius: 4px; padding: 0px; right: 6%; z-index: 1; background-color: rgba(0, 0, 0, 0.498039); }
-.fresh-watch .skip-ad-button .label { color: rgb(255, 255, 255); font-size: 1.13em; height: 2.57em; line-height: 2.57em; padding: 0px 1.3em; }
-.fresh-watch .skip-ad-button .skip-symbol { font-size: 1.1em; }
-.fresh-watch .skip-ad-button.canskip:hover, .fresh-watch .skip-ad-button.canskip.focused { background-color: rgba(255, 255, 255, 0.498039); }
-.fresh-watch .skip-ad-button.canskip:hover .label, .fresh-watch .skip-ad-button.canskip.focused .label { color: rgb(255, 255, 255); background: none; }
-.fresh-watch .advertisement-info { color: rgb(255, 255, 255); }
-.fresh-watch .advertisement-info .advertisement-advertiser { font-size: 100%; height: 1.4em; line-height: 1.3em; }
-.fresh-watch .advertisement-info .advertisement-advertiser > span { vertical-align: bottom; }
-.fresh-watch .advertisement-info .advertisement-advertiser, .fresh-watch .advertisement-info .advertisement-title, .fresh-watch .advertisement-info .third-party { overflow: hidden; text-shadow: none; text-overflow: ellipsis; white-space: nowrap; }
-.fresh-watch .advertisement-info .third-party { bottom: 0px; position: absolute; vertical-align: top; width: 79%; }
-.fresh-watch .advertisement-info .third-party > span { vertical-align: middle; }
-.fresh-watch .advertisement-info .advertisement-title { font-size: 1.35em; font-weight: bold; line-height: 1em; height: 1.1em; padding-bottom: 1%; text-shadow: none; }
-.fresh-watch .advertisement-info .ad-badge { border-radius: 0.15em; font-size: 0.85em; font-weight: bold; padding: 1px 7px; text-shadow: none; text-transform: capitalize; background-color: rgb(231, 189, 0); }
-.fresh-watch .advertisement-info .remaining-duration, .fresh-watch .advertisement-info .ad-by { font-size: 1.13em; }
-.fresh-watch .advertisement-info .remaining-duration { padding: 0px 2%; }
-.fresh-watch .advertisement-info .advertisement-avatar { border-radius: 50%; display: inline-block; height: 3.065em; margin-right: 1.4em; width: 3.065em; background-size: contain; background-repeat: no-repeat; }
-.title-card { display: block; height: 25%; position: absolute; top: 0px; transition: transform 0.25s, opacity 0.25s; width: 100%; background: linear-gradient(rgba(0, 0, 0, 0.901961), rgba(0, 0, 0, 0.8), transparent); }
-.ypc-playback .title-card { height: 30%; }
-.title-card.hidden { opacity: 0; display: block !important; }
-.limited-animation .title-card.hidden { display: none !important; }
-.title-card .badges span { border: 1px solid rgb(221, 221, 221); border-radius: 2px; display: inline-block; font-size: 0.9em; margin-left: 1em; padding: 0px 0.5em; text-transform: uppercase; vertical-align: middle; }
-.title-card .badges span.live-badge { color: rgb(255, 255, 255); border: 0px; margin-left: 0px; background-color: rgba(230, 33, 23, 0.8); }
-.selected-title .views { margin-top: -0.6em; }
-.player-meta { color: rgb(241, 241, 241); margin: 2.6em 0px 0px 3.5em; white-space: nowrap; width: 90%; }
-.player-meta .user-details { position: absolute; right: 5%; }
-.player-meta .user-details > div { display: inline-block; vertical-align: top; }
-.player-meta .user-details .avatar { height: 4em; width: 4em; background-size: cover; }
-.player-meta .user-details .message { font-size: 80%; margin: 0.2em 1em 0px 1.1em; max-width: 50%; overflow: hidden; text-overflow: ellipsis; }
-.player-meta .player-video-text { display: inline-block; padding-left: 1.5em; width: 90%; }
-.player-meta .player-video-details { font-size: 1.5em; white-space: initial; }
-.player-meta .player-video-details > div { margin: 0.2em 1em 0px 0px; vertical-align: top; }
-.player-meta .player-video-details .username { max-width: 45%; overflow: hidden; text-overflow: ellipsis; }
-.player-meta .player-video-details .set-context { max-width: 45%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
-.player-meta .player-video-details .set-context, .player-meta .player-video-details .set-context-position, .player-meta .player-video-details .uploaded-date, .player-meta .player-video-details .view-count, .player-meta .player-video-details .badges, .player-meta .player-video-details .username { display: inline-block; }
-.player-video-avatar { border-radius: 50%; display: inline-block; height: 5.5em; vertical-align: top; width: 5.5em; background-size: contain; }
-.player-video-title { font-size: 2.4em; margin: -0.1em 0px 0px; overflow: hidden; text-overflow: ellipsis; }
-.quality-status { display: none; padding-top: 0.2em; }
-.title-tray-inflated .quality-status { display: inline-block; }
-.quality-status-hd-badge { border-radius: 2px; color: rgb(65, 65, 65); font-size: 0.6em; font-weight: bold; padding: 0.125em 0.5em; background: rgb(241, 241, 241); }
-.ypc-preview { display: none; }
-.ypc-playback .ypc-preview { display: block; }
-.player-controls #button-list .focused, .player-controls #button-list div:hover { border-radius: 0.05em; color: rgb(0, 0, 0); }
-.player-controls #button-list .focused { background-color: rgb(255, 255, 255); }
-.player-controls #button-list div:hover { background-color: rgb(157, 148, 149); }
-.player-controls #button-list .button, .player-controls #button-list .toggle-button { display: inline-block; font-size: 1.4em; height: 1.3em; margin: 1em; padding-bottom: 0.4em; padding-top: 0.8em; top: 0px; width: 2.3em; }
-.player-controls #button-list .button span, .player-controls #button-list .toggle-button span { font-family: roboto-regular; font-size: 0.7em; left: -10%; margin: 0.5em 0px 0px; width: 120%; height: 120%; }
-.player-controls #button-list .button.spacer { visibility: hidden; cursor: auto; }
-#transport-controls.focused .player-controls #button-list div { color: rgb(255, 255, 255); }
-#transport-controls.focused .player-controls #button-list .focused { color: rgb(34, 34, 34); }
-.player-controls #button-list div { color: rgb(170, 170, 170); cursor: pointer; vertical-align: middle; }
-#transport-controls.ad-active .player-controls #button-list div.disabled { visibility: hidden; }
-#transport-controls.ad-active .player-controls #button-list div.skip-ad-button.disabled { visibility: visible; opacity: 1; }
-.player-controls #button-list div.disabled:hover { color: rgb(255, 255, 255); background-color: transparent; }
-.player-controls #button-list div.focused { opacity: 1; }
-.player-controls #button-list div.disabled { opacity: 0.2; }
-.player-controls #button-list .icon-player-closedcaptions.toggle-selected, .player-controls #button-list .icon-like.toggle-selected, .player-controls #button-list .icon-dislike.toggle-selected { color: rgb(39, 147, 230) !important; }
-.player-controls #button-list .icon-logo-lozenge.toggle-selected { color: rgb(255, 0, 0) !important; }
-#transport-controls .player-controls #button-list div.icon-player-more, #transport-controls .player-controls #button-list div.icon-player-less { color: rgb(133, 133, 133); }
-.player-controls .toggle-button span, .player-controls .button span, .player-controls .toggle-button.disabled span, .player-controls .button.disabled span { display: none; margin-top: 1em; color: rgb(255, 255, 255); font-size: 0.75em; padding: 0px; position: relative; text-align: center; top: 1em; width: 100%; }
-.lang-case-sensitive .player-controls .button span::first-letter, .lang-case-sensitive .player-controls .toggle-button span::first-letter { text-transform: uppercase; }
-#transport-controls.focused, .player-controls .toggle-button.focused span, .player-controls div:hover.toggle-button span, .player-controls .button.focused span, .player-controls div:hover.button span { display: block; }
-.player-seekbar { position: relative; }
-.progress-bar { height: 4em; left: 11%; position: absolute; top: -9em; width: 75%; padding: 0px 1.5%; }
-.progress-bar .progress-bar-playhead, .progress-bar .progress-bar-line { top: 2.5em; }
-.progress-bar .progress-bar-line { position: relative; width: 100%; }
-.progress-bar .progress-bar-line div { height: 2px; position: absolute; }
-.progress-bar .progress-bar-playhead { height: 2px; position: relative; width: 100%; }
-.progress-bar .progress-bar-line .progress-bar-background { width: 100%; background-color: rgb(91, 91, 91); }
-.progress-bar .progress-bar-line .progress-bar-played { background-color: rgb(227, 44, 41); }
-.progress-bar .progress-bar-line .progress-bar-loaded { background-color: rgb(153, 153, 153); }
-.ypc-playback .progress-bar-line .progress-bar-played { background-color: rgb(39, 147, 230); }
-.progress-bar .progress-bar-disc { border-radius: 50%; height: 0.6em; margin: -0.25em 0px 0px -0.25em; position: absolute; width: 0.6em; background-color: rgb(204, 204, 204); }
-.progress-bar .cue-range-markers { height: 100%; position: absolute; width: 100%; }
-.progress-bar-disc { pointer-events: none; }
-.ad-active .progress-bar .cue-range-markers { visibility: hidden; }
-.progress-bar .cue-range-markers .cue-range-marker { height: 2px; margin: 0px 0px 0px -0.1em; position: absolute; width: 0.2em; background-color: rgba(255, 255, 255, 0); }
-.progress-bar .cue-range-markers .ad-marker { background-color: rgb(230, 188, 39); }
-.progress-bar.ad-active .progress-bar-played { background-color: rgb(214, 203, 35); }
-#player-time-elapsed, .player-time-total, .live-indicator { color: rgba(255, 255, 255, 0.74902); font-size: 1.2em; position: absolute; top: -6em; width: 12%; }
-.limited-graphics #player-time-elapsed, .limited-graphics .player-time-total { color: rgb(255, 255, 255); }
-#player-time-elapsed { left: 0px; text-align: right; }
-.player-time-total, .live-indicator { right: 0px; text-align: left; }
-#transport-controls.ad-active #player-time-elapsed, #transport-controls.ad-active .player-time-total { display: none; }
-.live-indicator { display: none; font-size: 1.3em; position: absolute; top: -5.6em; width: 11.7%; }
-.live-playback .live-indicator { display: block; }
-.live-playback .player-time-total, .live-playback .elapsed-time, .fresh-transport-controls.live-playback .player-time-total, .fresh-transport-controls.live-playback #player-time-elapsed { display: none; }
-.live-playback .progress-bar-disc { background-color: rgb(230, 33, 23); }
-#watch .loading-indicator { top: 30%; }
-#transport-spacer:hover { background: none; }
-.html5-video-controls { position: absolute; width: 100%; height: 0px; bottom: 2em; transition: all 0.6s ease; }
-.ytp-player-content { position: absolute; bottom: 0px; height: 0px; left: 0px; right: 0px; }
-.html5-video-content { position: absolute; }
-.caption-window { position: absolute; pointer-events: none; }
-.standard-caption-window { position: absolute; white-space: normal; width: 80%; }
-.caption-window-transform { display: inline-block; line-height: 1.32em; }
-.html5-video-player .captions-text { position: relative; }
-.html5-video-player .caption-row { padding-bottom: 5px; padding-top: 5px; }
-.anchor-point-1 { transform: translate(-50%, 0px); }
-.anchor-point-2 { transform: translate(-100%, 0px); }
-.anchor-point-3 { transform: translate(0px, -50%); }
-.anchor-point-4 { transform: translate(-50%, -50%); }
-.anchor-point-5 { transform: translate(-100%, -50%); }
-.anchor-point-6 { transform: translate(0px, -100%); }
-.anchor-point-7 { transform: translate(-50%, -100%); }
-.anchor-point-8 { transform: translate(-100%, -100%); }
-.anchor-point-0, .anchor-point-1, .anchor-point-2 { padding-top: 3em; }
-.watch.transport-showing .anchor-point-0, .watch.transport-showing .anchor-point-1, .watch.transport-showing .anchor-point-2 { padding-top: 9em; }
-.anchor-point-0, .anchor-point-3, .anchor-point-6 { padding-left: 3em; }
-.anchor-point-2, .anchor-point-5, .anchor-point-8 { padding-right: 3em; }
-.anchor-point-6, .anchor-point-7, .anchor-point-8, .eureka .watch.transport-showing .anchor-point-6, .eureka .watch.transport-showing .anchor-point-7, .eureka .watch.transport-showing .anchor-point-8 { padding-bottom: 3em; }
-.watch.transport-showing .anchor-point-6, .watch.transport-showing .anchor-point-7, .watch.transport-showing .anchor-point-8 { padding-bottom: 15em; }
-.watch.pivot-focused .anchor-point-6 { padding-bottom: 17.5em; }
-.watch.pivot-focused .anchor-point-7, .watch.pivot-focused .anchor-point-8 { padding-bottom: 16em; }
-.watch .ytp-fresca-module, .search-focused .watch.message .ytp-fresca-module { display: none; }
-.watch.message .ytp-fresca-module { color: rgb(255, 255, 255); display: block; font-size: 2em; padding-left: 1.5em; position: absolute; top: 30%; width: 100%; background-color: rgba(0, 0, 0, 0.498039); }
-.watch.message .ytp-fresca-show-countdown { padding-bottom: 1.3em; }
-.ytp-fresca-countdown { font-size: 1.4em; }
-.pivot-shelf-list { margin-top: 12.5em; padding-left: 7em; transition: transform 0.25s, opacity 0.25s; transform: translateY(10em); }
-.pivot-shelf-list.hidden { opacity: 0; display: block !important; }
-.limited-animation .pivot-shelf-list.hidden, .forced-limited-animation.pivot-shelf-list.hidden { display: none !important; }
-.pivot-shelf-list.animate-in { transform: translateY(0px); }
-.pivot-shelf-list > .carousel { opacity: 0.5; transition: opacity 0.25s; }
-.limited-memory .pivot-shelf-list { opacity: 1; }
-.pivot-shelf-list .title-container { color: rgb(255, 255, 255); }
-.pivot-shelf .tile-title .author, .pivot-shelf .tile-title .view { color: rgb(225, 225, 225); }
-.pivot-shelf-list.focused, .post-play .pivot-shelf-list { height: 17.5em; margin-top: 2.5em; padding-top: 10em; transform: translateY(-7.5em); background: linear-gradient(rgba(0, 0, 0, 0), rgb(0, 0, 0)); }
-.post-play .pivot-shelf { opacity: 0.5; }
-.post-play .pivot-shelf-list.focused .pivot-shelf, .pivot-shelf-list.focused > .carousel { opacity: 1; }
-.pivot-shelf-list .focused.list { height: 0px; }
-.pivot-shelf-list .no-content-message { display: none; }
-.pivot-shelf-list.forced-limited-animation, .limited-animation .pivot-shelf-list, .limited-animation .pivot-shelf-list > .carousel { transition: none; }
-.pivot-shelf-list.forced-limited-animation .placeholder-tile, .limited-animation .pivot-shelf-list .placeholder-tile { height: 7.83em; width: 14em; }
-#pivot-post-play .pivot-video-tile, #pivot-post-play .placeholder-tile { height: 10.625em; width: 18.5em; }
-#pivot-post-play .tile-top { height: 10.625em; }
-.limited-animation #pivot-post-play .tile-top, #pivot-post-play.forced-limited-animation .tile-top { height: 9.825em; width: 17.7em; }
-.pivo`t-video-tile, .pivot-channel-tile { height: 7.83em; width: 14em; }
-.forced-limited-animation .pivot-video-tile, .forced-limited-animation .pivot-auto-play-tile, .forced-limited-animation .pivot-channel-tile, .pivot-shelf-list.forced-limited-animation .placeholder-tile, #pivot-post-play.forced-limited-animation .placeholder-tile, .limited-animation .pivot-video-tile, .limited-animation .pivot-auto-play-tile, .limited-animation .pivot-channel-tile, .limited-animation #pivot-post-play .placeholder-tile, .limited-animation .pivot-shelf-list .placeholder-tile { display: inline-block; margin-right: 0.5em; position: relative; vertical-align: bottom; background: none; }
-.forced-limited-animation .pivot-channel-tile, .limited-animation .pivot-channel-tile { border-radius: 100%; width: 10.625em; }
-.forced-limited-animation .pivot-video-tile.focused, .forced-limited-animation .pivot-auto-play-tile.focused .pivot-video-tile, .limited-animation .pivot-video-tile.focused, .limited-animation .pivot-auto-play-tile.focused .pivot-video-tile { background-color: rgb(255, 255, 255); }
-.pivot-video-tile .tile-top { height: 7.83em; }
-.forced-limited-animation .pivot-video-tile .tile-top, .limited-animation .pivot-video-tile .tile-top { height: 7.03em; padding: 0.4em; width: 13.2em; background-color: inherit; }
-.forced-limited-animation .pivot-video-tile.focused .tile-top, .limited-animation .pivot-video-tile.focused .tile-top { background-color: rgb(255, 255, 255); }
-.pivot-video-tile .tile-overlay { color: rgb(255, 255, 255); display: none; height: 100%; margin-top: -7.83em; text-align: center; width: 100%; background-color: rgba(0, 0, 0, 0.498039); }
-.forced-limited-animation .pivot-video-tile .tile-overlay, .limited-animation .pivot-video-tile .tile-overlay { margin-top: -7.03em; }
-#pivot-post-play .pivot-video-tile .tile-overlay { margin-top: -10.625em; }
-.limited-animation #pivot-post-play .pivot-video-tile .tile-overlay, #pivot-post-play.forced-limited-animation .pivot-video-tile .tile-overlay { margin-top: -9.875em; }
-.pivot-video-tile.has-overlay .tile-overlay { display: block; }
-#pivot-post-play .pivot-video-tile.has-overlay .tile-overlay { opacity: 0; }
-#pivot-post-play.focused .pivot-video-tile.has-overlay .tile-overlay { opacity: 1; }
-.post-play .pivot-shelf-list .pivot-video-tile.has-overlay .label { display: none; }
-.post-play .pivot-shelf-list .pivot-video-tile.has-overlay .icon-player-play { font-size: 4em; }
-.post-play .pivot-shelf-list .pivot-video-tile.has-overlay .icon-player-play::before { content: ""; }
-.pivot-video-tile .tile-overlay .icon { font-family: youtube-icons; font-size: 3em; padding-top: 0.5em; }
-.pivot-video-tile .tile-overlay .label { font-size: 1.2em; }
-#pivot-post-play .pivot-video-tile .tile-overlay { color: rgb(225, 225, 225); }
-#pivot-post-play .pivot-video-tile .tile-overlay .icon { font-size: 4.5em; padding-bottom: 0.15em; padding-top: 0.4em; }
-#pivot-post-play .pivot-video-tile .tile-overlay .label, #pivot-post-play .pivot-video-tile .tile-overlay .icon { opacity: 0; transition: opacity 0.25s; }
-#pivot-post-play.focused .pivot-video-tile .tile-overlay .label, #pivot-post-play.focused .pivot-video-tile .tile-overlay .icon { opacity: 1; }
-.limited-animation #pivot-post-play .pivot-video-tile .tile-overlay .label, .limited-animation #pivot-post-play .pivot-video-tile .tile-overlay .icon, #pivot-post-play.forced-limited-animation .pivot-video-tile .tile-overlay .label, #pivot-post-play.forced-limited-animation .pivot-video-tile .tile-overlay .icon { transition: none; }
-.pivot-video-tile .video-thumb { height: 100%; width: 100%; background-size: 100%; background-position: 50% 50%; background-repeat: no-repeat; }
-.pivot-video-tile .decoration { margin-top: -2.1em; text-align: right; }
-.pivot-video-tile .duration { font-size: 1em; font-weight: bold; padding: 0.5em; background-color: rgba(0, 0, 0, 0.701961); }
-.pivot-auto-play-tile { height: 10.625em; overflow: visible; width: 18.5em; background: none; }
-.forced-limited-animation .pivot-auto-play-tile, .limited-animation .pivot-auto-play-tile { height: 10.625em; width: 18.5em; }
-.pivot-auto-play-tile .post-play-countdown { display: block; font-size: 1.8em; margin-left: 10.8em; opacity: 0; pointer-events: none; position: absolute; text-align: left; text-shadow: none; top: 0px; width: 17.5em; }
-.pivot-auto-play-tile.countdown-active .post-play-countdown { opacity: 1; pointer-events: inherit; }
-.pivot-auto-play-tile .details, .pivot-auto-play-tile .title { color: rgb(255, 255, 255); opacity: 0; pointer-events: none; }
-.pivot-auto-play-tile.focused .details, .pivot-auto-play-tile.focused .title { opacity: 1; pointer-events: inherit; }
-.pivot-auto-play-tile .title { font-size: 1.4em; margin-left: 14em; max-height: 2.5em; overflow: hidden; position: absolute; top: 2.2em; width: 20em; }
-.pivot-auto-play-tile .details { font-size: 1.1em; margin-left: 17.8em; position: absolute; top: 6em; width: 37em; }
-.pivot-auto-play-tile .details, .pivot-auto-play-tile .title, .pivot-auto-play-tile .post-play-countdown { transition: opacity 0.25s; }
-.limited-animation .pivot-auto-play-tile .details, .limited-animation .pivot-auto-play-tile .title, .limited-animation .pivot-auto-play-tile .post-play-countdown { transition: none; }
-#pivot-post-play .pivot-auto-play-tile .pivot-video-tile { padding-left: 0px; padding-top: 0px; }
-#pivot-post-play #post-play-list .no-content-message { display: none; }
-.forced-limited-animation .pivot-horizontal-list, .limited-animation .pivot-horizontal-list { margin-left: -15em; }
-.pivot-horizontal-list.focused .pivot-sliding-highlighter, .post-play #post-play-list.focused .pivot-sliding-highlighter { display: block; }
-.pivot-horizontal-list .pivot-sliding-highlighter, .post-play .pivot-sliding-highlighter { border: 0.5em solid rgb(255, 255, 255); box-shadow: rgb(0, 0, 0) 0.083em 0.083em 0.75em 0.167em inset; height: 7.5em; margin-left: -0.4em; margin-top: -0.4em; pointer-events: none; width: 13.8em; background: transparent; }
-.pivot-shelf { position: absolute; width: 0px; }
-.forced-limited-animation .pivot-shelf, .limited-animation .pivot-shelf { opacity: 0.5; position: relative; }
-.forced-limited-animation .pivot-shelf.focused, .limited-animation .pivot-shelf.focused { opacity: 1; }
-.limited-memory.limited-animation .pivot-shelf { opacity: 1; }
-.pivot-shelf .title-container { margin-bottom: 1em; visibility: hidden; white-space: nowrap; }
-.pivot-shelf .title-container .icon { font-family: youtube-icons; vertical-align: middle; }
-.pivot-shelf .tile-title span { display: inline-block; overflow: hidden; text-overflow: ellipsis; }
-.pivot-shelf.focused .title-container { visibility: visible; }
-.pivot-shelf .tile-title, .pivot-shelf .shelf-title { margin-bottom: 0.3em; }
-.pivot-shelf .tile-title { height: 1.7em; }
-.pivot-shelf .tile-title .title { font-size: 1.3em; max-width: 30em; }
-.pivot-shelf .tile-title .author, .pivot-shelf .tile-title .view { margin-left: 0.3em; max-width: 20em; }
-.pivot-shelf .tile-title .author, .pivot-sliding-highlighter .select { display: none; }
-.pivot-shelf.has-author .tile-title .author { display: inline-block; }
-.forced-limited-animation .pivot-horizontal-list .list, .limited-animation .pivot-horizontal-list .list { width: 98em; }
-.forced-limited-animation .postplay-horizontal-list .list, .limited-animation .postplay-horizontal-list .list { margin-left: -13.4em; width: 98em; }
-.forced-limited-animation .pivot-channel-tile.focused .tile-top, .limited-animation .pivot-channel-tile.focused .tile-top { background-color: rgb(255, 255, 255); }
-.forced-limited-animation .pivot-channel-tile .tile-top, .limited-animation .pivot-channel-tile .tile-top { height: 6.83em; padding: 0.4em; width: 6.83em; }
-.pivot-channel-tile .tile-top { border-radius: 50%; height: 7.83em; margin: 0px auto; overflow: hidden; width: 7.83em; background: none; }
-.pivot-channel-tile .tile-top .video-thumb { background-color: rgba(0, 0, 0, 0); }
-.pivot-channel-tile .video-thumb { border-radius: 50%; }
-.pivot-shelf .pivot-horizontal-list.channel-selected .pivot-sliding-highlighter { border-radius: 50%; height: 7.5em; margin-left: -0.3em; margin-top: -0.3em; transform: translateX(3.2em); width: 7.5em; }
-.pivot-shelf.channel-selected .shelf-title { visibility: hidden; }
-.pivot-footer { height: 9em; }
-.pivot-button-list { padding-top: 4em; }
-.pivot-button-list .icon-button { display: inline-block; padding: 0.5em 1em; }
-.pivot-button-list .icon-button .icon { font-family: youtube-icons; margin-right: 0.3em; }
-.pivot-footer.focused .pivot-button-list .icon-button.selected { background-color: rgb(255, 255, 255); }
-.pivot-button-list .icon-button span { color: rgb(255, 255, 255); font-size: 1.5em; }
-.pivot-footer.focused .pivot-button-list .icon-button.selected span { color: rgb(0, 0, 0); }
-#pivot-post-play { padding-left: 6em; padding-top: 10em; }
-.limited-animation #pivot-post-play, #pivot-post-play.forced-limited-animation { padding-left: 0px; }
-#pivot-post-play #post-play-list { font-size: 1.1em; margin-left: 0.1em; }
-.forced-limited-animation .pivot-auto-play-tile, .limited-animation .pivot-auto-play-tile { padding-left: 0px; vertical-align: bottom; }
-#pivot-post-play.forced-limited-animation .pivot-video-tile, .limited-animation #pivot-post-play .pivot-video-tile { vertical-align: bottom; }
-.forced-limited-animation .pivot-auto-play-tile .pivot-video-tile, .limited-animation .pivot-auto-play-tile .pivot-video-tile { display: block; position: absolute; }
-#pivot-post-play .pivot-sliding-highlighter { border-width: 0.5em; height: 9.9em; margin-top: 0px; width: 18.4em; }
-.limited-animation.sets-ui .exp-densityBrowse .auto-play-tile:not(.focused) .video-tile, .limited-animation .exp-densityBrowse .auto-play-tile.focused .video-tile, .limited-animation .exp-densityBrowse .auto-play-tile { background-color: inherit; }
-.limited-animation .exp-densityBrowse .auto-play-tile.focused .tile-top { background: rgb(255, 255, 255); }
-.limited-animation .exp-densityBrowse .auto-play-tile .post-play-countdown { top: -2.67em; }
-.loki-video-source { color: rgb(255, 255, 255); font-size: 1.5em; left: 5em; position: absolute; top: 2.6em; }
-.loki-title-card { bottom: 0px; display: block; height: 25%; position: absolute; width: 100%; background: linear-gradient(to top, rgba(0, 0, 0, 0.901961) 0%, rgba(0, 0, 0, 0.6) 80%, transparent 100%); }
-.loki-title-card .loki-metadata { color: rgb(241, 241, 241); height: 100%; margin-bottom: 2.6em; margin-left: 8em; overflow: hidden; white-space: nowrap; width: 100%; }
-.loki-metadata #loki-progress-bar { display: block; height: 2em; left: 8em; padding: 0px; position: absolute; top: -4em; width: 80%; }
-#loki-progress-bar .progress-bar-playhead { display: none; }
-.loki-metadata .loki-video-avatar { display: inline-block; height: 8em; width: 8em; background-size: contain; }
-.loki-metadata .loki-video-text { display: inline-block; height: 100%; margin: 0px 5em 0px 3.5em; width: 80%; }
-.loki-video-text .loki-video-title { font-size: 2.4em; margin-top: -0.1em; overflow: hidden; text-overflow: ellipsis; width: 80%; }
-.loki-video-text .loki-channel-name { font-size: 1.5em; margin-top: 0.4em; overflow: hidden; text-overflow: ellipsis; width: 80%; }
-.loki-video-text .loki-video-description { line-height: 1.4em; margin-top: 0.4em; max-height: 4.2em; overflow: hidden; white-space: normal; width: 80%; }
-.toaster { color: rgb(170, 170, 170); font-size: 133%; position: absolute; top: 0px; width: 100%; }
-.toaster .list { margin-top: 0.8em; position: absolute; width: 100%; }
-.toaster .toast { min-height: 3.5em; overflow: hidden; position: relative; text-align: center; width: 100%; transition: all 0.6s ease; }
-.toaster .toast-container { border: 1px solid black; display: inline-block; margin: 0.2em 0px 1em; max-width: 60%; opacity: 1; padding: 0.5em 1em 0.6em; transition: all 0.3s ease; background-color: rgba(27, 25, 26, 0.8); }
-.toaster .toast.toast-removing .toast-container { opacity: 0; }
-.toaster .toast-container > div { display: inline-block; vertical-align: middle; }
-.toaster .toast-icon { height: 1.2em; width: 1.2em; background-size: 1.1em 1.1em; background-position: 50% 50%; background-repeat: no-repeat; }
-.device-toast .toast-container { padding: 0.7em; }
-.toaster .device-toast .toast-msg { padding-left: 0.8em; background-size: 1.1em 1.1em; background-position: 0% 50%; background-repeat: no-repeat; }
-.toaster .avatar { height: 2.6em; width: 2.6em; }
-.toaster .avatar > div { height: inherit; width: inherit; background-size: cover; background-position: 50% 50%; }
-.toaster .video-image > div { height: 100%; width: 100%; background-size: cover; background-position: 50% 50%; }
-.toast .update-playlist-toast { bottom: 0px; max-width: 14em; padding: 0.8em; position: fixed; right: 0px; text-align: left; }
-.update-playlist-toast .overlay { height: 55%; margin-left: 56%; margin-top: -55%; opacity: 0.8; width: 44%; background: rgb(0, 0, 0); }
-.update-playlist-toast .video-count { font-size: 2.3em; font-weight: normal; line-height: 1.2em; padding-top: 0.8em; text-align: center; }
-.update-playlist-toast .icon-playlist { font-family: youtube-icons; font-size: 2.2em; height: 50%; overflow: hidden; padding: 0.2em; text-align: center; }
-.update-playlist-toast .avatar { padding: 0.3em; }
-.update-playlist-toast .contrast-container { padding: 0.4em; background-color: rgba(0, 0, 0, 0.8); }
-.update-playlist-toast .tile-top { height: 7.7em; width: 14em; }
-.update-playlist-toast .toast-msg { font-size: 85%; padding-left: 0.6em; }
-.update-playlist-toast .truncate { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; width: 13.2em; }
-.update-playlist-toast .toast-msg.avatar { height: 2.1em; width: 10em; overflow: hidden; }
-.update-playlist-toast .toast-msg.truncate { white-space: normal; }
-.update-playlist-toast .toast-msg.no-user-avatar { font-size: 85%; margin-left: -2.2em; }
-.update-playlist-toast .wrapper > div { display: inline-block; vertical-align: middle; }
-.toaster .toast-icon { max-width: 100%; background-image: url(www.youtube.com/s/tv/html5/f0d770f4/img/dial-sprite.png); background-size: 100%; }
-.toast-icon.avatar { background-image: none; }
-.toaster .android-phone-connected { background-position: 0px 0%; }
-.toaster .android-phone-disconnected { background-position: 0px 10.14%; }
-.toaster .android-tablet-connected { background-position: 0px 20.29%; }
-.toaster .android-tablet-disconnected { background-position: 0px 30.43%; }
-.toaster .ios-phone-connected { background-position: 0px 40.58%; }
-.toaster .ios-phone-disconnected { background-position: 0px 50.72%; }
-.toaster .ios-tablet-connected { background-position: 0px 60.87%; }
-.toaster .ios-tablet-disconnected { background-position: 0px 71%; }
-.toaster .laptop-connected { background-position: 0px 81.16%; }
-.toaster .laptop-disconnected { background-position: 0px 91.3%; }
-.toaster .remote-connected { background-size: 233.33%; background-position: 0px 100%; }
-.toaster .remote-disconnected { background-size: 233.33%; background-position: 0px 100%; }
-.toaster .toast-progress { border: 1px solid rgb(170, 170, 170); width: 10em; }
-.toaster .toast-progress .progress { height: 1em; background-color: rgb(102, 102, 102); }
-.toaster .volume-muted { background-image: url(www.youtube.com/s/tv/html5/f0d770f4/img/volume_mute_pressed.png); }
-.toaster .volume-low { background-image: url(www.youtube.com/s/tv/html5/f0d770f4/img/volume_0_pressed.png); }
-.toaster .volume-mid { background-image: url(www.youtube.com/s/tv/html5/f0d770f4/img/volume_1_pressed.png); }
-.toaster .volume-high { background-image: url(www.youtube.com/s/tv/html5/f0d770f4/img/volume_2_pressed.png); }
-.toaster .volume-toast .toast-msg { text-align: right; width: 1.2em; }
-.toaster .volume-toast .toast-container { transition-delay: 0.3s; }
-.toaster .volume-toast.toast-removing .toast-container { transition-delay: 0s; }
-.unlimited-welcome-toast .toast-container { box-shadow: rgb(0, 0, 0) 0em 0em 0.6em 0.02em; height: 6.5em; margin: 0em; padding: 0px; position: fixed; right: 0px; text-align: left; top: 0px; width: 24.5em; transform: translateX(0px); opacity: 1; transition: all 0.6s ease; }
-.unlimited-welcome-toast.toast-displaying .toast-container { opacity: 0; transform: translateX(18em); }
-.limited-animation .unlimited-welcome-toast .toast-container { opacity: 1; transition: none; transform: none; }
-.unlimited-toast-messages { position: absolute; padding-top: 2.1em; padding-left: 1.3em; width: 12em; }
-.unlimited-toast-msg-top { color: rgb(221, 221, 221); line-height: 1em; }
-.unlimited-toast-msg-bottom { padding-top: 0.5em; font-size: 0.7em; }
-.unlimited-toast-background { height: 100%; width: 9em; background-size: 100%; background-position: 0% 50%; background-repeat: no-repeat; }
-.unlimited-toast-logo { height: 100%; background-size: 100%; background-repeat: no-repeat; }
-#dialog { color: rgb(255, 255, 255); display: none; height: 100%; left: 0px; position: absolute; top: 0px; width: 100%; }
-#error-markup #dialog { display: block; }
-#dialog.focused { display: block; }
-#dialog-wrapper { height: 30em; margin-top: 11.1em; padding: 1.3em 6em; position: relative; background-color: rgb(0, 0, 0); }
-#dialog.browse-sets #dialog-wrapper { height: 100%; margin-top: 0px; padding: 1.3em 10%; background-color: rgba(32, 32, 32, 0.498039); }
-#dialog .dialog-contents { background: 90% 30% no-repeat; }
-#dialog.browse-sets .dialog-contents .icon-simple-dialog { color: rgb(255, 255, 255); }
-#dialog .dialog-contents .dialog-large-icon { display: none; }
-#dialog.browse-sets .dialog-contents .dialog-large-icon { display: inline-block; font-family: youtube-icons; font-size: 10em; height: 2.5em; line-height: 2.5em; text-align: center; width: 35%; }
-#dialog.browse-sets .icon-simple-dialog .icon-dialog-content .extra-info { color: rgba(255, 255, 255, 0.74902); display: block; font-family: monospace; font-size: 1.5em; line-height: 1.4em; padding-top: 0.8em; }
-#dialog.browse-sets .icon-simple-dialog .icon-dialog-content .label { display: block; font-size: 1.8em; line-height: 1.1em; padding-top: 6.45em; }
-#dialog .dialog-contents .header .title { font-size: 2.5em; }
-#dialog.browse-sets.browse-sets-titled-dialog .dialog-contents .header { border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgba(255, 255, 255, 0.2); height: 3.4em; margin: 0px 1.5em; }
-#dialog.browse-sets.browse-sets-titled-dialog .dialog-contents .header .title { color: rgba(255, 255, 255, 0.498039); display: block; font-size: 1.3em; font-weight: 300; height: 3em; line-height: 3em; }
-#dialog.browse-sets .buttons { font-size: 1.8em; margin-right: 2%; margin-top: 0.8em; text-align: right; }
-#dialog.browse-sets .connection-steps { padding: 0px; }
-#dialog.browse-sets.exit .dialog-contents .header .title { display: block; padding: 1em 6.5em 3em; }
-#dialog.browse-sets .dialog-contents { height: 80%; margin-top: 5%; background-color: rgb(0, 0, 0); }
-#dialog.browse-sets.closed-captions .dialog-contents { height: 75%; }
-#dialog.browse-sets .dialog-cancel-button { text-align: center; }
-.video-overview .dialog-contents { font-size: 2em; }
-#dialog.qr-dialog .dialog-contents { color: rgb(204, 204, 204); font-size: 1.1em; overflow: hidden; padding-top: 4em; }
-#dialog.qr-dialog .dialog-contents .header .title { color: rgb(255, 255, 255); font-size: 2em; }
-#dialog .box { padding-top: 1.5em; }
-#dialog.qr-dialog a { color: rgb(255, 255, 255); display: block; font-size: 1.5em; }
-#dialog.qr-dialog .qr { height: 7em; margin: 0.2em 0px; width: 7em; background-size: 100%; }
-#dialog.qr-dialog .dialog-icon { display: block; background-size: 12em; }
-#dialog.help .dialog-icon { background-image: url(www.youtube.com/s/tv/html5/f0d770f4/img/icon-help.png); }
-#dialog.feedback .dialog-icon { background-image: url(www.youtube.com/s/tv/html5/f0d770f4/img/icon-feedback.png); }
-#dialog.system-error .dialog-icon { font-family: youtube-icons; font-size: 10em; margin-right: 0px; padding-right: 0.5em; padding-top: 0.5em; text-align: right; width: 2em; }
-#dialog.system-error .dialog-icon::before { content: ""; }
-#dialog.qr-dialog.browse-sets .dialog-icon { display: none; }
-#dialog .text-dialog { bottom: 1.5em; left: 0px; padding: 2em 20em 0px 6em; position: absolute; white-space: normal; }
-#dialog.text-dialog .dialog-contents .header .title { font-size: 3em; padding-bottom: 0.5em; }
-.text-dialog #dialog-view { color: rgb(170, 170, 170); padding-bottom: 1em; width: 90%; }
-.text-dialog #dialog-view .dialog-contents { font-size: 1.8em; }
-#dialog.browse-sets .icon-dialog-content { display: inline-block; height: 25em; vertical-align: top; width: 60%; }
-#dialog-view .url { color: rgb(255, 255, 255); font-size: 1.25em; padding-bottom: 0.8em; }
-#dialog-view .flag-claim .url { padding-bottom: 0.5em; }
-#dialog-view .reset-help { display: block; width: 25em; }
-#dialog.browse-sets .tos-dialog .icon-dialog-content { padding-top: 9em; }
-#dialog.browse-sets .tos-dialog .icon-dialog-content .subtitle { color: rgb(170, 170, 170); }
-#dialog.browse-sets .tos-dialog .icon-dialog-content .url { font-size: 2em; }
-#dialog.browse-sets.qr-dialog .dialog-contents { padding-top: 0px; }
-#dialog.browse-sets.qr-dialog .icon-dialog-content .link { margin-top: 5em; padding-top: 0px; }
-#dialog.browse-sets.qr-dialog .icon-dialog-content .qr-code-wrapper { margin-top: 2em; }
-#dialog.browse-sets.qr-dialog .icon-dialog-content .qr-code-wrapper .qr { border: 0.2em solid rgba(255, 255, 255, 0.0980392); padding: 0.5em; }
-#dialog .signed-out-dialog { font-size: 1.8em; }
-.connection-error, .connection-steps { display: inline-block; font-weight: 300; padding: 0px 1em 1em 2em; white-space: normal; }
-.connection-error { vertical-align: top; }
-.connection-error div { margin-bottom: 1em; }
-#dialog .login-dialog .activation-code { font-size: 1.3em; letter-spacing: 0.1em; line-height: 1.3em; }
-#dialog .sets-login-dialog .body-text { display: inline-block; height: 25em; vertical-align: top; width: 50%; }
-#dialog .sets-login-dialog .body-text .connection-instructions { font-size: 1.9em; margin-top: 3.5em; }
-#dialog .sets-login-dialog .standard-message, #dialog .sets-login-dialog .like-dislike-message, #dialog .sets-login-dialog .subscribe-message, #dialog .sets-login-dialog .upload-message, #dialog .sets-login-dialog .player-message { display: none; }
-#dialog.standard-login .sets-login-dialog .standard-message, #dialog.like-dislike-login .sets-login-dialog .like-dislike-message, #dialog.subscribe-login .sets-login-dialog .subscribe-message, #dialog.upload-login .sets-login-dialog .upload-message, #dialog.player-login .sets-login-dialog .player-message { display: block; }
-#dialog .pairing .qr-code-wrapper { display: inline-block; vertical-align: top; }
-#dialog .manual-connect-content .connection-steps { padding: 0px; }
-#dialog .manual-connect-content .connection-steps .label { color: rgb(170, 170, 170); font-size: 0.7em; margin-top: 1em; }
-#dialog .manual-connect-content .connection-steps .step1, #dialog .manual-connect-content .connection-steps .step2 { margin-top: 0.7em; }
-#dialog .manual-connect-content .connection-steps .pair-url, #dialog .manual-connect-content .connection-steps .pair-code { margin-left: 0.3em; }
-#dialog.browse-sets .manual-connect-content .connection-steps .label { font-size: 1.3em; }
-#dialog.browse-sets .manual-connect-content .connection-steps .step1, #dialog.browse-sets .manual-connect-content .connection-steps .step2 { display: inline-block; font-size: 1.3em; }
-#dialog.browse-sets .manual-connect-content .connection-steps .pair-url, #dialog.browse-sets .manual-connect-content .connection-steps .pair-code { display: inline-block; font-size: 1.3em; margin-left: 0.3em; }
-#dialog.browse-sets .pairing .connection-instructions { font-size: 1em; padding-top: 10em; }
-#dialog .manual-connect .dial-upsell-content { display: none; }
-#dialog .dial-upsell .manual-connect-content .connection-steps .no-dial-connect-step1, #dialog .manual-connect .manual-connect-content .connection-steps .with-dial-connect-step1 { display: none; }
-#dialog .manual-connect .manual-connect-content .connection-steps { font-size: 1.5em; }
-#dialog .manual-connect .manual-connect-content .connection-steps .label { display: none; }
-#dialog.browse-sets .dial-upsell .dial-upsell-content { font-size: 1.8em; white-space: normal; width: 80%; }
-#dialog.browse-sets .dial-upsell .dial-upsell-content .cast-icon { height: 1.3em; margin: 0px; width: 1.5em; }
-#dialog.browse-sets .dial-upsell .manual-connect-content { color: rgb(170, 170, 170); font-size: 1.4em; line-height: 1em; }
-#dialog.browse-sets .remote-reset-dialog .connected-list .connected-header { color: rgb(255, 255, 255); font-size: 1.5em; margin-top: 6em; }
-#dialog.browse-sets .remote-reset-dialog .connected-list .devices { display: inline-block; font-size: 1em; }
-#dialog.browse-sets .remote-reset-dialog .connected-list .devices > div { display: inline-block; font-size: 1em; padding-left: 0px; padding-right: 1.5em; width: 10em; }
-#dialog.browse-sets .remote-reset-dialog .reset-help { font-size: 1.5em; margin-top: 1em; }
-#dialog .logout-authenticated-info { padding: 2.5em 0px; }
-#dialog .login-user-icon { display: inline-block; height: 4em; margin: 2em 2em 0px 0px; width: 4em; background-size: cover; }
-#dialog.browse-sets .login-user-icon { margin: 0px 15%; border-radius: 20em; }
-#dialog .login-user-info { display: inline-block; margin-left: 1.7em; margin-top: -0.8em; font-size: 2em; font-weight: 300; width: 82%; }
-#dialog .login-user-info h3 { font-size: 2.2em; font-weight: normal; margin: 0px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
-#dialog.browse-sets .logout-authenticated-info { padding: 0px; }
-#dialog.browse-sets .login-user-info { height: 13em; margin: 0px; width: 100%; }
-#dialog.browse-sets .login-user-info .display-name, #dialog.browse-sets .login-user-info .platform-container { display: none; }
-#dialog.browse-sets .login-user-info .signed-in-message { display: inline-block; width: 50%; }
-#dialog.browse-sets .login-user-info .signed-in-label strong { color: rgb(255, 255, 255); display: block; font-size: 2.5em; overflow: hidden; text-overflow: ellipsis; }
-#dialog.browse-sets .login-user-info .signed-in-label { color: rgb(170, 170, 170); font-size: 0.5em; margin-top: 10em; }
-#dialog.browse-sets .login-user-info .sign-out-label { margin-top: 1em; }
-#dialog .spinner { height: 10em; width: 10em; }
-#dialog .spinner .loading-indicator { height: 100%; width: 100%; background-size: contain; }
-#dialog .buttons { font-size: 3em; font-weight: 300; padding-top: 0.3em; }
-#dialog .buttons > div { color: rgb(0, 0, 0); cursor: pointer; display: inline-block; min-width: 2.4em; padding: 0px 0.3em; text-align: center; background-color: rgb(51, 51, 51); }
-#dialog.browse-sets .buttons .button { color: rgba(255, 255, 255, 0.498039); min-width: 3em; padding: 0.2em 0.8em; background-color: rgb(0, 0, 0); }
-#dialog.browse-sets .buttons .focused, #dialog.browse-sets .buttons .button.focused:hover { color: rgb(102, 102, 102); background-color: rgb(241, 241, 241); }
-#dialog .buttons .button:hover, #dialog.browse-sets .buttons .button:hover { background-color: rgb(102, 102, 102); }
-#dialog .buttons div { margin-left: 0.5em; }
-#dialog .buttons .focused, #dialog .buttons .focused:hover { color: rgb(102, 102, 102); background-color: rgb(241, 241, 241); }
-#dialog .whichOneIsThis-logout-dialog .logout-prompt { font-size: 1.7em; }
-#dialog .logout-prompt { margin-top: 6em; }
-.scrolling-text { font-size: 1.3em; height: 15em; margin-right: 1.1em; margin-top: 1em; overflow: hidden; }
-.scrolling-text h4 { margin: 0px; padding: 0px; }
-.scrolling-text > div { overflow: hidden; padding-bottom: 1em; }
-.flag-list-container { margin-top: 0.5em; }
-.flag-list .button { color: rgb(134, 134, 134); cursor: pointer; display: inline-block; font-size: 1.8em; padding: 0.4em; vertical-align: top; }
-.flag-list .button { width: 12em; }
-.flag-list .button:hover { background-color: rgb(68, 68, 68); }
-.flag-list .button.focused, .flag-list .button.focused:hover { color: rgb(103, 103, 103); background-color: rgb(255, 255, 255); }
-#flag-widget { font-weight: 300; }
-.flag-video { color: rgb(103, 103, 103); font-size: 1.8em; font-weight: 300; padding-top: 1em; width: 47%; }
-.flag-video .url { color: rgb(255, 255, 255); display: block; font-size: 1.6em; padding-top: 0.5em; }
-.flag-example { display: inline-block; height: 57%; position: absolute; right: 18%; top: 9%; width: 23%; background: url(www.youtube.com/s/tv/html5/f0d770f4/img/flag.png) 0px 0px / contain no-repeat; }
-.flag-claim .metadata { display: block; font-size: 1em; font-weight: 500; padding-top: 0.2em; white-space: normal; }
-.flag-claim .url { color: rgb(134, 134, 134); display: block; font-weight: 300; }
-.flag-claim { color: rgb(103, 103, 103); font-size: 1.6em; font-weight: 300; margin: 1em 0px 0px 2em; white-space: nowrap; }
-.flag-claim .copyright-infringment { display: inline-block; white-space: normal; width: 50%; }
-.flag-claim .privacy-invasion { display: inline-block; margin-left: 4%; vertical-align: top; white-space: normal; width: 40%; }
-.flag-claim .email { color: rgb(134, 134, 134); }
-.flag-claim .subtitle { font-size: 1.2em; font-weight: 500; }
-.player-error-dialog.player-error { color: rgb(170, 170, 170); font-size: 1.8em; padding: 1em 0px 8em 0em; }
-#dialog .scrollbar { height: 70%; margin-top: 5em; right: 5em; }
-#dialog .scrollbar .handle { height: 5em; }
-.paid-channel-info { font-size: 1.4em; padding-top: 1em; }
-.paid-channel-info .channel-url { font-weight: bold; }
-.status-dialog #dialog-wrapper { background-color: rgba(0, 0, 0, 0.498039); }
-.status-dialog .icon { display: inline-block; height: 11em; vertical-align: middle; width: 25%; background: url(www.youtube.com/s/tv/html5/f0d770f4/img/pairing-promo-combo.png) 50% 50% / contain no-repeat; }
-.status-dialog .info { display: inline-block; padding-left: 0.5em; vertical-align: middle; width: 70%; }
-.status-dialog .message { color: rgb(204, 204, 204); font-size: 2em; }
-.status-dialog #dialog-view { padding-top: 7em; }
-.dialog-focused #legend { bottom: 12%; display: block; }
-#legend.legend-for-dialog-closed-captions { bottom: 6%; }
-#dialog.confirm-cookies .dialog-contents .header .title { font-size: 3em; }
-#dialog.confirm-cookies #dialog-view { color: rgb(170, 170, 170); font-size: 1.8em; height: 8em; padding-top: 0.9em; }
-.single-pane-selector { padding-bottom: 1em; padding-top: 1em; white-space: nowrap; }
-.single-pane-selector .list { display: inline-block; margin-right: 0.5em; padding-left: 0.5em; padding-right: 0.5em; vertical-align: top; width: 94%; }
-.single-pane-selector .button .label { width: 90%; }
-.single-pane-selector .check-button.previously-selected .icon-check { display: inline-block; }
-.split-pane-selector { border-bottom-width: 0.1em; border-bottom-style: solid; border-bottom-color: rgba(255, 255, 255, 0.2); padding-bottom: 1em; padding-top: 1em; white-space: nowrap; }
-.check-button .icon-check { display: none; font-family: youtube-icons; }
-.single-pane-selector .labeled-value, .split-pane-selector .labeled-value { color: rgb(134, 134, 134); font-size: 1.4em; height: 2.8em; line-height: 1.5em; overflow: hidden; padding: 0px 1em; white-space: normal; }
-.single-pane-selector .labeled-value .value, .split-pane-selector .labeled-value .value { color: rgb(102, 102, 102); display: block; font-size: 0.7em; line-height: 1.4em; }
-.single-pane-selector .button, .split-pane-selector .button { color: rgb(134, 134, 134); cursor: pointer; font-size: 1.4em; height: 2.8em; line-height: 2.8em; overflow: hidden; padding: 0px 0.4em; white-space: normal; }
-.single-pane-selector .button .label, .split-pane-selector .button .label { display: inline-block; line-height: 1.3em; vertical-align: middle; }
-.single-pane-selector .subtitled-button, .split-pane-selector .subtitled-button { line-height: 1.5em; }
-.single-pane-selector .button.no-model, .split-pane-selector .button.no-model { visibility: hidden; }
-.split-pane-selector .list { display: inline-block; vertical-align: top; width: 47%; }
-.split-pane-selector .list:first-child { border-right-width: 0.1em; border-right-style: solid; border-right-color: rgba(255, 255, 255, 0.2); margin-right: 0.5em; padding-right: 0.5em; }
-.single-pane-selector .button:hover, .single-pane-selector .list:not(.focused) .button.selected, .split-pane-selector .button:hover, .split-pane-selector .list:not(.focused) .button.selected { color: rgb(255, 255, 255); background-color: rgb(68, 68, 68); }
-.single-pane-selector .button.focused, .single-pane-selector .button.focused:hover, .split-pane-selector .button.focused, .split-pane-selector .button.focused:hover { color: black; background-color: rgb(255, 255, 255); }
-.single-pane-selector .subtitled-button span.subtitle, .split-pane-selector .subtitled-button span.subtitle { color: rgb(102, 102, 102); display: block; font-size: 0.7em; line-height: 1.4em; }
-.color-button .preview { border: 2px solid rgb(0, 0, 0); color: rgb(134, 134, 134); display: inline-block; height: 1em; margin: 0px 0.2em 0.2em; vertical-align: middle; width: 1em; }
-.color-button .preview.rounded { border-radius: 50%; }
-.preview.black { border: 1px solid rgb(255, 255, 255); background-color: rgb(0, 0, 0); }
-.preview.red { background-color: rgb(255, 0, 0); }
-.preview.magenta { background-color: rgb(255, 0, 255); }
-.preview.blue { background-color: rgb(0, 0, 255); }
-.preview.cyan { background-color: rgb(0, 255, 255); }
-.preview.green { background-color: rgb(0, 255, 0); }
-.preview.yellow { background-color: rgb(255, 255, 0); }
-.preview.white { background-color: rgb(255, 255, 255); }
-.debug-dialog { font-size: 0.9em; }
-.debug-dialog span.label { font-weight: bold; }
-#dialog.browse-sets .video-upload-dialog-contents { display: inline-block; font-size: 1.6em; margin: 1em 3% 0px; text-align: left; vertical-align: top; width: 55%; }
-#dialog.browse-sets .modify-video .video-upload-dialog-contents { margin-top: 2em; text-align: center; }
-.video-upload-status .video-url { color: rgb(39, 147, 230); }
-.delete-video { padding-bottom: 6em; }
-.modify-video .list .button { color: rgb(132, 132, 132); display: inline-block; height: 8em; margin-right: 1em; text-align: center; width: 8em; background-size: 60% 60%; background-position: 50% 20%; background-repeat: no-repeat; }
-.modify-video .list .button.focused { color: rgb(40, 40, 40); background-color: rgb(255, 255, 255); }
-.modify-video .list .button span { display: block; font-size: 1.2em; margin: 4.6em 0.5em 0.5em; overflow: hidden; white-space: nowrap; }
-.modify-video .modify-edit-button { background-image: url(www.youtube.com/s/tv/html5/f0d770f4/img/edit_tile_light.png); }
-.modify-video .modify-edit-button.focused { background-image: url(www.youtube.com/s/tv/html5/f0d770f4/img/edit_tile_dark.png); }
-.modify-video .modify-delete-button { background-image: url(www.youtube.com/s/tv/html5/f0d770f4/img/trash_tile_light.png); }
-.modify-video .modify-delete-button.focused { background-image: url(www.youtube.com/s/tv/html5/f0d770f4/img/trash_tile_dark.png); }
-.delete-video-dialog .video-tile .details, .modify-video .video-tile .details { margin-top: -0.1em; }
-.browse-sets #modify-list .button { height: 7.5em; margin-right: 0.9em; width: 7.5em; }
-.browse-sets #modify-list .button span { font-size: 1.1em; margin-top: 5.2em; }
-.delete-video-dialog { margin-bottom: 14em; }
-.browse-sets .delete-video-dialog { margin-bottom: 1em; }
-.video-processing, .video-upload-error { font-size: 1.5em; }
-.video-upload-error .error-container { color: rgb(170, 170, 170); margin-top: 1em; }
-#dialog .buttons .upload-terms, #dialog .buttons .upload-terms:hover { color: rgb(85, 85, 85); display: block; font-size: 0.6em; margin-left: 1.5em; text-align: left; background-color: rgb(0, 0, 0); }
-.upload-progress { margin-bottom: 1em; width: 100%; }
-.upload-progress-value { text-align: left; width: 100%; }
-.upload-progress span { margin-left: -1em; position: relative; width: 4em; }
-.upload-progress .upload-progress-bar { width: 100%; background-color: rgb(170, 170, 170); }
-.upload-progress .upload-progress-bar .completed { height: 1em; background-color: rgb(39, 147, 230); }
-.privacy-button { cursor: pointer; position: relative; background: 0.4em 50% / 1.5em no-repeat; }
-.privacy-button .checkbox { height: 2em; left: 85%; position: absolute; top: 0px; width: 2em; background-size: 2em; background-position: 100% 50%; }
-.privacy-button.checked .checkbox { background-image: url(www.youtube.com/s/tv/html5/f0d770f4/img/icon-privacy-check-light.png); }
-.privacy-button.focused.checked .checkbox { background-image: url(www.youtube.com/s/tv/html5/f0d770f4/img/icon-privacy-check-dark.png); }
-.privacy-button .label .name { line-height: 1.5em; text-indent: 1.8em; background-size: 2em; background-position: 0px 0.5em; }
-.privacy-button .description { font-size: 0.6em; line-height: 0.8em; padding-left: 2.9em; }
-.privacy-button .name { font-size: 1em; line-height: 1.2em; padding-left: 1.7em; }
-.private-state, .video-tile .private { background-image: url(www.youtube.com/s/tv/html5/f0d770f4/img/icon-privacy-private-light.png); }
-.private-state.focused { background-image: url(www.youtube.com/s/tv/html5/f0d770f4/img/icon-privacy-private-dark.png); }
-.public-state, .video-tile .public { background-image: url(www.youtube.com/s/tv/html5/f0d770f4/img/icon-privacy-public-light.png); }
-.public-state.focused { background-image: url(www.youtube.com/s/tv/html5/f0d770f4/img/icon-privacy-public-dark.png); }
-.unlisted-state, .video-tile .unlisted { background-image: url(www.youtube.com/s/tv/html5/f0d770f4/img/icon-privacy-unlisted-light.png); }
-.unlisted-state.focused { background-image: url(www.youtube.com/s/tv/html5/f0d770f4/img/icon-privacy-unlisted-dark.png); }
-.video-tile .private, .video-tile .public, .video-tile .unlisted { min-height: 1.5em; min-width: 1.5em; padding-left: 1.5em; background-size: 1.5em; background-position: 0% 50%; background-repeat: no-repeat; }
-.video-privacy .button, .video-overview .button { display: inline-block; height: 2em; line-height: 2em; margin: 0.1em 0px; overflow: hidden; padding: 0.1em 0.5em; vertical-align: top; white-space: nowrap; width: 65%; }
-.video-privacy .button { width: 85%; }
-.video-overview .button:first-child { width: 20%; }
-.video-privacy .button.focused, .video-privacy .button:not(.disabled):hover, .video-overview .button.focused, .video-overview .button:not(.disabled):hover { color: rgb(103, 103, 103); background-color: rgb(255, 255, 255); }
-#dialog.browse-sets .video-privacy .button:nth-child(2) { width: 11em; }
-#dialog.browse-sets .video-uploads { margin: 3em 1em 2em; }
-#dialog.browse-sets .video-uploads .carousel { overflow: hidden; }
-#dialog.browse-sets .video-uploads .carousel .video-tile .details { text-align: left; }
-.video-overview .title-button { line-height: 1em; white-space: normal; }
-#dialog.browse-sets .video-overview .title-button .label { display: inline-block; line-height: 2em; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; width: 95%; }
-.video-overview .channel-button { line-height: 2em; overflow: hidden; text-indent: 1.8em; text-overflow: ellipsis; background-size: 1.5em; background-position: 0.35em 50%; background-repeat: no-repeat; }
-.video-uploads .carousel { height: 20em; position: relative; white-space: nowrap; }
-.video-tile-container { display: inline-block; margin-top: 1.7em; text-align: right; width: 35%; }
-.video-tile-container .video-tile { border: 0.1em solid rgba(255, 255, 255, 0.2); display: inline-block; height: 22em; position: static; text-align: left; width: 20em; }
-.video-tile-container .video-tile .tile-top { height: 51%; }
-.video-tile-container .video-tile .tile-bottom .details { height: inherit; }
-.video-uploads .carousel .video-tile { height: 20em; width: 18em; }
-.video-uploads .video-tile .decoration { top: 7em; }
-.video-tile-container .video-tile .tile-bottom, .video-uploads .video-tile .tile-bottom { width: initial; }
-.dialog.closed-captions #dialog-wrapper { margin-top: 5em; }
-#dialog.closed-captions-language-only #dialog-wrapper { padding: 1.6em 26%; }
-#dialog.closed-captions-language-only #options-list { display: none; }
-#legend.legend-for-dialog-closedCaptionsDialog { bottom: 24%; }
-#dialog.closed-captions-language-only ~ #legend { right: 29%; }
-.simple-dialog { margin: 3em; font-size: 1.6em; }
-.lang-ja_JP .connection-instructions .step1, .lang-ja_JP .connection-instructions .step2, .lang-ko_KR .connection-instructions .step1, .lang-ko_KR .connection-instructions .step2, .lang-zh_CN .connection-instructions .step1, .lang-zh_CN .connection-instructions .step2, .lang-zh_HK .connection-instructions .step1, .lang-zh_HK .connection-instructions .step2, .lang-zh_TW .connection-instructions .step1, .lang-zh_TW .connection-instructions .step2 { font-size: 0.8em; }
-.lang-de_DE .action-tile .content .title, .lang-el_GR .action-tile .content .title, .lang-es_ES .action-tile .content .title, .lang-es_MX .action-tile .content .title, .lang-fr_FR .action-tile .content .title, .lang-fr_CA .action-tile .content .title, .lang-ko_KR .action-tile .content .title, .lang-nl_NL .action-tile .content .title, .lang-pl_PL .action-tile .content .title, .lang-pt_BR .action-tile .content .title, .lang-pt_PT .action-tile .content .title, .lang-ru_RU .action-tile .content .title, .lang-uk_UA .action-tile .content .title { font-size: 2em; }
-.lang-it_IT .action-tile .content .title { font-size: 1.8em; }
-.lang-es_ES .action-tile .improve-yt-tile .title, .lang-fr_CA .action-tile .history-tile .title, .lang-fr_FR .action-tile .history-tile .title, .lang-de_DE .action-tile .terms-tile .title, .lang-fr_CA .action-tile .terms-tile .title, .lang-fr_FR .action-tile .terms-tile .title { font-size: 1.7em; }
-.lang-es_ES .action-tile .videoinfo-tile .title, .lang-es_MX .action-tile .videoinfo-tile .title, .lang-fr_CA .action-tile .videoinfo-tile .title, .lang-fr_FR .action-tile .videoinfo-tile .title, .lang-pt_BR .action-tile .videoinfo-tile .title { font-size: 1.5em; white-space: normal; }
-.lang-de_DE .action-tile .videoinfo-tile .title { font-size: 1.45em; padding-left: 0.5em; padding-right: 0.5em; white-space: normal; }
-.lang-es_ES .action-tile .videoinfo-tile .label, .lang-es_MX .action-tile .videoinfo-tile .label, .lang-fr_CA .action-tile .videoinfo-tile .label, .lang-fr_FR .action-tile .videoinfo-tile .label, .lang-pt_BR .action-tile .videoinfo-tile .label { padding-top: 0.6em; }
-.lang-de_DE .action-tile .videoinfo-tile .label { font-size: 1.6em; padding-top: 0.7em; }
-.lang-ja_JP .action-tile .terms-tile .title { font-size: 2em; }
-.lang-ja_JP #transliteration .list { font-size: 1.2em; }
-.lang-ja_JP #keyboard-grid { font-size: 1.5em; }
-.lang-ja_JP #keyboard-spacebar { margin-left: 5.5em; }
-.lang-zh_CN #search .horizontal-list, .lang-zh_HK #search .horizontal-list, .lang-zh_TW #search .horizontal-list, .lang-ja_JP #search .horizontal-list { transform: translateY(9.5em); }
-.lang-ko_KR #search .horizontal-list { transform: translateY(10.5em); }
-.lang-ko_KR #search-keyboard { font-size: 1.82em; }
-.lang-ko_KR #letter-suggest .button { width: 1em; }
-.lang-ko_KR #keyboard-grid, .lang-ru_RU #keyboard-grid, .lang-uk_UA #keyboard-grid { margin-top: 0.3em; }
-.lang-ko_KR #keyboard-grid.lang-ko .numbers-toggle-tile.button, .lang-ru_RU #keyboard-grid.lang-ru .numbers-toggle-tile.button, .lang-uk_UA #keyboard-grid.lang-ua .numbers-toggle-tile.button { font-size: 0.75em; }
-.lang-ko_KR #keyboard-grid .button, .lang-ru_RU #keyboard-grid .button, .lang-uk_UA #keyboard-grid .button { height: 1.2em; line-height: 1.1em; margin-top: 0.6em; }
-.lang-ko_KR #letter-suggest .button, .lang-ru_RU #letter-suggest .button, .lang-uk_UA #letter-suggest .button { height: 1.2em; line-height: 1.1em; width: 1.2em; }
-.lang-ko_KR .search-state #spinner, .lang-ru_RU .search-state #spinner, .lang-uk_UA .search-state #spinner, .lang-ja_JP .search-state #spinner { top: 25em; }
-.lang-ko_KR .search-state .application-message, .lang-ru_RU .search-state .application-message, .lang-uk_UA .search-state .application-message, .lang-ja_JP .search-state .application-message { top: 55%; }
-.lang-ru_RU #keyboard-grid.lang-ru .button, .lang-uk_UA #keyboard-grid.lang-ua .button, .lang-ko_KR #keyboard-grid, .lang-ko_KR #letter-suggest, .lang-ko_KR #keyboard-spacebar { font-size: 1em; }
-.lang-ru_RU #keyboard-spacebar, .lang-uk_UA #keyboard-spacebar { margin-left: 4.2em; }
-.lang-de_DE .countdown-ad-callout .time-left-label, .lang-de_DE .countdown-ad-callout .skip-time-label { font-size: 1.1em; }
-.lang-cs_CZ .action-tile .description, .lang-de_DE .action-tile .description, .lang-hi_IN .action-tile .description, .lang-pl_PL .action-tile .description, .lang-pt_BR .action-tile .description, .lang-pt_PT .action-tile .description, .lang-ru_RU .action-tile .description, .lang-uk_UA .action-tile .description { font-size: 1.3em; }
-.lang-de_DE .guide-button.footer .guide-button-title { width: 27.81em; }
-.lang-de_DE .guide-user-name { width: 13.5em; }
-.lang-nl_NL .guide-button.disabled .guide-button-title, .lang-de_DE .guide-button.disabled .guide-button-title, .lang-fr_FR .guide-button.disabled .guide-button-title, .lang-pt_PT .guide-button.disabled .guide-button-title { width: 13em; }
-.lang-tr_TR #search #keyboard-grid .button.clear-query-tile, .lang-tr_TR .action-tile .title, .lang-tr_TR .guide-button-icon, .lang-tr_TR #keyboard-grid .button, .lang-tr_TR .tile-top .badge, .lang-tr_TR .tile-top .duration, .lang-tr_TR .title-card .badges span .lang-tr_TR.lang-case-sensitive .player-controls .button span::first-letter, .lang-tr_TR.lang-case-sensitive .player-controls .toggle-button span::first-letter, .lang-tr_TR.lang-case-sensitive .snap-controls .speakable span::first-letter, .lang-tr_TR.lang-case-sensitive .voice-command::first-letter { text-transform: none; }
-.voice-command { display: none; }
-.lang-case-sensitive .voice-command::first-letter { text-transform: uppercase; }
-.engaged .voice-command { color: rgb(93, 194, 30); display: block; font-size: 1em; background-color: rgba(22, 22, 22, 0.701961); }
-.engaged .horizontal-list .carousel .voice-command { display: none; }
-.engaged .horizontal-list.focused .carousel .voice-command { display: block; }
-.engaged .pivot-video-tile .voice-command, .engaged .pivot-channel-tile .voice-command { display: none; }
-.engaged .pivot-video-tile.speakable .voice-command, .engaged .pivot-channel-tile.speakable .voice-command { display: block; }
-.engaged .video-tile .voice-command, .engaged .pivot-video-tile .voice-command, .engaged .pivot-channel-tile .voice-command, .engaged .playlist-tile .voice-command, .engaged .channel-tile .voice-command { bottom: 50%; font-size: 1.5em; margin-top: -2.17em; padding: 0.5em 0.9em; opacity: 0.999; }
-.engaged .video-tile.disabled .voice-command, .engaged .pivot-video-tile.disabled .voice-command, .engaged .pivot-channel-tile.disabled .voice-command { display: none; }
-.engagement-indicator { bottom: 0.8em; display: none; font-size: 1.5em; left: 1.8em; position: absolute; width: 16em; }
-.engaged .engagement-indicator { color: rgb(93, 194, 30); display: block; background-color: transparent; }
-.engagement-indicator .icon { display: inline-block; height: 2em; vertical-align: middle; width: 2em; background: 50% 50% no-repeat; }
-.engagement-indicator .stop-listening { padding: 0.5em; }
-.engagement-indicator .stop-listening .icon { background-image: url(www.youtube.com/s/tv/html5/f0d770f4/img/icon-aaa-engaged.png); }
-.engagement-indicator .text { text-align: center; }
-.engagement-indicator .title { display: inline-block; font-size: 0.9em; }
-.browse-sets-state.engaged .engagement-indicator, .browse-state.engaged .engagement-indicator, .post-play-state.engaged .engagement-indicator, .post-play-state.engaged .engagement-indicator, .settings-state.engaged .engagement-indicator, .search-state.engaged .engagement-indicator { display: block; }
-.watch-state.engaged .engagement-indicator { display: block; height: 3em; left: 0px; margin-left: auto; margin-right: auto; right: 0px; text-align: center; top: 20%; }
-.watch-focused .engagement-indicator .stop-listening { background-color: rgba(22, 22, 22, 0.701961); }
-.sliding-highlighter .select, .engaged .legend-item, .engaged #dialog .speakable.button, .engaged .context-menu .speakable.button, .engaged .speakable.action-tile .title, .engaged .modify-video .speakable, .engaged .modify-video .speakable.focused { color: rgb(93, 194, 30); }
-.voice-footer { bottom: 0px; color: rgb(93, 194, 30); font-size: 1.5em; height: 3em; padding: 1em 0px 0.6em; position: absolute; text-align: center; width: 100%; background-color: rgba(22, 22, 22, 0.701961); }
-.voice-footer .list { font-size: 0.65em; margin: -1.3em auto auto; padding-top: 1em; width: 29em; }
-.voice-footer .component { display: inline-block; padding-right: 1em; }
-.engaged .voice-footer { color: rgb(93, 194, 30); }
-.engaged .voice-footer li { display: inline; padding: 0px 2%; }
-.engaged .player-controls .button span, .engaged .player-controls .toggle-button span { color: rgb(93, 194, 30); display: block; }
-.engaged .player-controls .button.disabled span, .engaged .player-controls .toggle-button.disabled span { display: none; }
-.engaged #transport-controls.ad-active .player-controls #button-list div.skip-ad-button.canskip .label, .engaged .skip-ad-button.canskip .label { color: rgb(93, 194, 30); }
-.engaged .player-controls-widget { margin-top: 7.4em; }
-.engaged .player-controls .voice-command.transport { top: 1em; }
-.legend { bottom: 5.5%; color: rgb(241, 241, 241); position: absolute; right: 5.5%; text-shadow: rgb(0, 0, 0) 2px 2px 4px; display: none; background: radial-gradient(closest-side, rgba(0, 0, 0, 0.2) 25%, rgba(0, 0, 0, 0.0980392) 60%, rgba(0, 0, 0, 0)); }
-.limited-memory .legend { background: none; }
-.legend-item { cursor: pointer; display: none; margin: 0px 0px 0px 0.5em; }
-.legend-item span { vertical-align: middle; }
-.legend-item .icon { display: block; height: 2.5em; margin: auto; max-width: 100%; text-align: center; width: 2.5em; background-size: 100%; }
-.legend-item.more > .icon.icon-player-more { background-size: 0px; }
-.legend-item.more > .icon::before { font-family: youtube-icons; color: rgb(255, 255, 255); font-size: 1.9em; margin: auto; position: relative; top: 0.2em; }
-.legend-item .title { display: block; font-size: 1.1em; margin-top: 0px; text-align: center; text-transform: none; }
-#legend.back .back, #legend.close-guide .close-guide, #legend.delete .delete, #legend.exit .exit, #legend.guide .guide, #legend.search .search, #legend.space .space, #legend.home .home, #legend.modify .modify, #legend.more .more, .reversed-keys #legend.back .reversed-back { display: inline-block; }
-.reversed-keys #legend.back .back { display: none; }
-.desktop .legend, .game-console .legend, .tv .legend { display: inline-block; }
-.veryvibrant .legend { font-size: 1.2em; }
-.desktop .legend-item .icon { background-image: url(www.youtube.com/s/tv/html5/f0d770f4/img/legend-sprite-desktop.png); }
-.game-console.sony .legend-item .icon { background-image: url(www.youtube.com/s/tv/html5/f0d770f4/img/legend-sprite-bbb.png); }
-.rockandroll #legend .legend-item .icon { background-image: url(www.youtube.com/s/tv/html5/f0d770f4/img/legend-sprite-ccc.png); }
-.skip-ad-callout .icon, .tv .legend-item .icon { background-image: url(www.youtube.com/s/tv/html5/f0d770f4/img/legend-sprite-ddd.png); }
-.veryvibrant .legend-item .icon { background-image: url(www.youtube.com/s/tv/html5/f0d770f4/img/legend-sprite-eee.png); }
-.veryvibrant #user-info-background { transform: translateZ(0px); }
-.veryvibrant #search .horizontal-list { top: 30%; transform: none; }
-.veryvibrant .search-state #spinner { top: 20em; }
-.sellingApples .legend-item .icon { background-image: url(www.youtube.com/s/tv/html5/f0d770f4/img/legend-sprite-ggg.png); }
-.nothingHere .legend-item .icon { background-image: url(www.youtube.com/s/tv/html5/f0d770f4/img/legend-sprite-fff.png); }
-.desktop .legend-item.back .icon, .desktop .legend-item.exit .icon { background-size: 240%; background-position: 0px 47.4%; }
-.desktop .legend-item.search .icon { background-size: 240%; background-position: 0px 100%; }
-.desktop .legend-item.close-guide .icon, .desktop .legend-item.guide .icon, .desktop .legend-item.home .icon, .desktop .legend-item.space .icon { background-size: 240%; background-position: 0px 73.7%; }
-.desktop .skip-ad-callout .icon { width: 6.6em; background-size: 520%; background-position: 31% 67.5%; }
-.game-console.sony .legend-item .icon, .tv .legend-item .icon, .veryvibrant .legend-item .icon { height: 1.5em; position: relative; bottom: 0.5em; width: 1.5em; background-repeat: no-repeat; }
-.game-console.sony .legend-item.more > .icon::before, .tv .legend-item.more > .icon::before, .veryvibrant .legend-item.more > .icon::before { top: initial; }
-.game-console.microsoft .legend-item { margin-left: 1.4em; }
-.game-console.microsoft .legend-item.back .icon, .game-console.microsoft .legend-item.exit .icon, .game-console.microsoft .legend-item.reversed-back .icon { background-position: 0px 27.5%; }
-.game-console.microsoft .legend-item.search .icon, .game-console.microsoft .legend-item.space .icon { background-position: 0px 82%; }
-.game-console.microsoft .legend-item.close-guide .icon, .game-console.microsoft .legend-item.delete .icon, .game-console.microsoft .legend-item.guide .icon, .game-console.microsoft .legend-item.home .icon, .game-console.microsoft .legend-item.modify .icon { background-position: 0px 54.9%; }
-.rockandroll #legend .legend-item.back .icon, .rockandroll #legend .legend-item.exit .icon { background-position: 0px 105%; }
-.game-console.sony .legend-item.back .icon, .game-console.sony .legend-item.exit .icon { background-position: 0px 0%; }
-.game-console.sony .legend-item.reversed-back .icon { background-position: 0px 100%; }
-.game-console.sony .legend-item.search .icon, .game-console.sony .legend-item.space .icon { background-position: 0px 87.5%; }
-.game-console.sony .legend-item.close-guide .icon, .game-console.sony .legend-item.delete .icon, .game-console.sony .legend-item.guide .icon, .game-console.sony .legend-item.home .icon { background-position: 0px 75%; }
-.game-console.sony #dialog .logout-authenticated-info, .game-console.microsoft #dialog .logout-authenticated-info { padding-top: 0px; }
-.game-console.sony .action-tile .platform-container, .game-console.microsoft .action-tile .platform-container { margin: 1em; text-align: center; }
-.game-console.sony .login-user-info .platform-user-name, .game-console.sony .platform-user-name, .game-console.microsoft .login-user-info .platform-user-name, .game-console.microsoft .platform-user-name { vertical-align: middle; }
-.game-console.sony .login-user-info .platform-user-icon, .game-console.sony .platform-user-icon, .game-console.microsoft .platform-user-icon, .game-console.microsoft .login-user-info .platform-user-icon { display: inline-block; height: 3em; vertical-align: middle; width: 3em; background-size: cover; }
-.game-console.sony #dialog .login-user-info .platform-container > div, .game-console.microsoft #dialog .login-user-info .platform-container > div { font-size: 1em; }
-.veryvibrant .advertisement-callout, .veryvibrant .advertisement-info, .veryvibrant #leanback-player-container, .veryvibrant .skip-ad-button, .veryvibrant .title-card, .veryvibrant #watch, .veryvibrant .toaster { }
-.veryvibrant .pivot-shelf-list { opacity: 1; }
-.veryvibrant .legend-item.back .icon, .veryvibrant .legend-item.exit .icon { background-position: 0px 33.3%; }
-.veryvibrant .legend-item.search .icon { background-position: 0px 100%; }
-.veryvibrant .legend-item.close-guide .icon, .veryvibrant .legend-item.delete .icon, .veryvibrant .legend-item.guide .icon, .veryvibrant .legend-item.home .icon { background-position: 0px 66.7%; }
-.veryvibrant .qr-code-wrapper { display: none; }
-.veryvibrant #search .search-pairing { display: none; }
-.veryvibrant #search-suggestions { font-size: 1.6em; height: 1.6em; }
-.veryvibrant .search-state .application-message { top: 35%; }
-.tv .legend-item.guide .icon, .tv .legend-item.close-guide .icon, .tv .skip-ad-callout .icon { background-position: 0px 100%; }
-.lg .legend-item.back, .lg .legend-item.exit { cursor: pointer; }
-.tv .legend-item.back .icon, .tv .legend-item.exit .icon { background-position: 0% 0%; }
-.lg .legend-item.back .icon, .lg .legend-item.exit .icon { opacity: 0.8; }
-.lg .legend-item.back:hover .icon, .lg .legend-item.exit:hover .icon { opacity: 1; }
-body.samsung { background-color: transparent !important; }
-body.lg { background-image: url(tv:) !important; background-color: transparent !important; }
-body.limited-memory { background-color: rgb(17, 17, 17); }
-.limited-memory .bg, .eureka .bg { background-image: none; background-color: rgb(46, 46, 46); }
-.limited-animation .loading-indicator, .opera .loading-indicator, .lg .loading-indicator { display: none; }
-.limited-animation .fallback-loading-indicator, .opera .fallback-loading-indicator, .lg .fallback-loading-indicator { display: block; }
-.limited-animation .video-tile .video-thumb { opacity: 1; }
-.limited-memory .video-tile .video-thumb { background-size: cover; }
-.limited-memory .video-tile .video-thumb.preloaded { background-size: auto; }
-.rockandroll.limited-memory .video-tile .video-thumb { opacity: 1; background-size: 100%; }
-.limited-animation.playlist-tile .count-overlay { background-color: rgb(0, 0, 0); }
-.search .placeholder-tile, .settings .placeholder-tile, .limited-animation .browse-content .list .placeholder-tile { height: 24em; width: 20.75em; }
-.guide .placeholder-tile { width: 100%; height: 2em; }
-.limited-animation .action-tile, .limited-animation .channel-tile, .limited-animation .playlist-tile, .limited-animation .auto-play-tile, .limited-animation .recent-search-tile, .limited-animation .video-tile, .limited-animation .browse-content .list .placeholder-tile, .search .placeholder-tile, .settings .placeholder-tile, .shelf .placeholder-tile { display: inline-block; margin-right: 1.1em; position: relative; vertical-align: top; }
-.limited-animation .shelves { margin-top: 2.5%; }
-.limited-animation .playlist-tile .overlay, .limited-animation .video-tile .overlay, .limited-memory .playlist-tile .overlay, .limited-memory .video-tile .overlay { opacity: 1; }
-.limited-memory .auto-play-tile .video-tile { margin: 0px; }
-.limited-animation .auto-play-tile .post-play-countdown { top: -4em; }
-.limited-animation .hide-background.video-tile .video-thumb { opacity: 1; background-image: url(www.youtube.com/s/tv/html5/f0d770f4/img/icon-playbutton.png) !important; background-repeat: no-repeat; }
-.limited-animation .action-tile.focused .content { text-shadow: none; }
-.limited-animation .post-play-countdown { text-shadow: none; }
-.limited-animation #keyboard-grid .button.disabled, .limited-animation #keyboard-grid .button.focused, .limited-animation #letter-suggest .button { background-color: rgb(153, 153, 153); }
-.limited-animation #search #text-box-background, .limited-animation #search #search-text-entry { background-color: rgb(0, 0, 0); }
-.limited-animation #search-keyboard, .limited-animation #letter-suggest { text-shadow: none; }
-.limited-animation #search-keyboard .disabled, .limited-animation #letter-suggest .button { color: rgb(0, 0, 0); text-shadow: none; }
-.limited-animation #letter-suggest .button.focused, .limited-animation #search-keyboard .button.focused { color: rgb(33, 33, 33); background-color: rgb(225, 225, 225); }
-.limited-animation #transliteration .list .button { border-right-color: rgb(241, 241, 241); }
-.limited-animation #transliteration .list .button.focused { background-color: rgb(153, 153, 153); }
-.limited-animation .toaster .toast-container { background-color: rgb(27, 25, 26); }
-.limited-animation .title-card, .limited-memory.limited-animation.sets-ui .title-card { height: 20%; background: rgb(0, 0, 0); }
-.opera .focused, .opera :focus { outline: invert none medium; }
-.eureka #browse-sets, .eureka #dialog .buttons, .eureka .legend, .eureka #transport-controls { display: none; }
-#eureka-player-controls-container { display: none; position: absolute; top: 17em; width: 100%; }
-.eureka #eureka-player-controls-container { display: block; }
-.eureka .loading #eureka-player-controls-container { opacity: 0; }
-#eureka-player-controls { border-radius: 1em; height: 11.5em; margin: 0px auto; overflow: hidden; width: 11.5em; background-size: 100%; }
-.eureka #eureka-player-controls { opacity: 0; }
-@-webkit-keyframes showAndShrinkPause { 
-  0% { transform: scale(1.5); opacity: 0; }
-  100% { opacity: 0.7; }
-}
-@-webkit-keyframes hideAndGrowPlay { 
-  0% { opacity: 0.7; }
-  100% { transform: scale(1.5); opacity: 0; }
-}
-.eureka #watch.play #eureka-player-controls { animation: hideAndGrowPlay 0.25s linear 0s 1 normal none; background-image: url(www.youtube.com/s/tv/html5/f0d770f4/img/player-play.png); }
-.eureka #watch.pause #eureka-player-controls { animation: showAndShrinkPause 0.25s linear 0s 1 normal none; opacity: 0.7; background-image: url(www.youtube.com/s/tv/html5/f0d770f4/img/player-pause.png); }
-.sellingApples .action-tile, .sellingApples .legend-item.back, .sellingApples .legend-item.delete, .sellingApples .legend-item.exit, .sellingApples .legend-item.home, .sellingApples .legend-item.modify, .sellingApples .legend-item.reversed-back, .sellingApples .legend-item.search, .sellingApples .player-controls div, .sellingApples .auto-play-tile, .sellingApples .video-stream, .sellingApples .video-tile, .sellingApples #browse-search-bar, .sellingApples #guide.focused .guide-button, .sellingApples #player-controls .item, .sellingApples #snap-buttons > div { }
-.sellingApples #browse-sets { }
-.sellingApples #guide.focused .carousel { }
-.sellingApples .settings-shelf { }
-.sellingApples #transliteration .button:hover, .sellingApples #keyboard-grid .button:hover { cursor: default; background: none; }
-.search-hint { display: none; }
-.sellingApples .search-hint, .nothingHere .search-hint { color: rgb(107, 107, 107); display: block; font-size: 1.4em; line-height: 2em; }
-.context-menu-defocuser { height: 100%; left: 0px; position: absolute; top: 0px; width: 100%; background-color: rgba(0, 0, 0, 0.498039); }
-.context-menu-list { height: initial; left: 50%; padding-top: 2.5em; position: relative; top: 50%; transform: translate(-50%, -50%); width: 30%; background-color: rgb(0, 0, 0); }
-.context-menu-list .button { border-color: rgb(0, 0, 0); border-style: solid; border-width: 0.5em 1em; color: rgb(225, 225, 225); cursor: pointer; font-family: roboto-regular; font-size: 1.5em; height: auto; line-height: 2.5em; margin: 0px; text-align: left; text-indent: 1em; transition-duration: 200ms; transition-property: background-color, color; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); }
-.context-menu-list .button::before { font-family: youtube-icons; padding-right: 1em; }
-.context-menu-list .button.icon-platform-switch-users { border-style: solid; border-color: rgb(31, 31, 31); border-width: 2em 1em; height: initial; line-height: initial; margin-top: 1em; padding: 0.5em 0px 0.5em 3em; text-indent: 0px; background: url(www.youtube.com/s/tv/html5/f0d770f4/app-prod.css) 0.5em 50% / 2em 2em no-repeat rgb(31, 31, 31); }
-.context-menu-list .button.focused { color: rgb(0, 0, 0); background-color: rgb(225, 225, 225); }
-.call-to-cast { display: none; }
-.call-to-cast.focused { bottom: 0px; display: block; left: 0px; position: absolute; right: 0px; top: 0px; }
-.call-to-cast-text { color: rgb(241, 241, 241); font-weight: normal; text-shadow: rgb(0, 0, 0) 0.06em 0.06em; width: 38%; }
-h2.call-to-cast-text { font-size: 3.2em; margin-bottom: 0.3em; margin-top: 0px; padding-top: 1.5em; }
-h3.call-to-cast-text { font-size: 1.7em; }
-.call-to-cast .end-screen { display: none; height: 100%; background-size: cover; background-position: 50% 50%; background-repeat: no-repeat; }
-.call-to-cast .end-screen.active { display: block; }
-.call-to-cast .end-screen .call-to-cast-text { color: rgb(255, 255, 255); width: 40%; }
-.call-to-cast .end-screen .call-to-cast-text em { color: rgb(0, 144, 255); font-style: normal; }
-.call-to-cast .end-screen h2.call-to-cast-text { margin-bottom: 0.5em; padding-top: 2em; }
-.call-to-cast .end-screen h3.call-to-cast-text { line-height: 1.5em; }
-.call-to-cast .end-screen.left .call-to-cast-text { margin-left: 5%; }
-.call-to-cast .end-screen.right .call-to-cast-text { margin-left: 50%; }
-.call-to-cast .end-screen .yt-logo, .call-to-cast .end-screen .yt-kids-logo { bottom: 8%; height: 13.88%; position: fixed; width: 100%; background-image: url(www.youtube.com/s/tv/html5/f0d770f4/img/call-to-cast-yt-logo.png); background-size: contain; background-repeat: no-repeat; }
-.call-to-cast .end-screen.left .yt-logo, .call-to-cast .end-screen.left .yt-kids-logo { left: 4%; background-position: 0% 50%; }
-.call-to-cast .end-screen.right .yt-logo, .call-to-cast .end-screen.right .yt-kids-logo { right: 4%; background-position: 100% 50%; }
-.call-to-cast .end-screen .yt-kids-logo { height: 20%; background-image: url(www.youtube.com/s/tv/html5/f0d770f4/img/yt-kids-logo.png); }
-.call-to-cast .end-screen.multi-user { background-image: url(www.youtube.com/s/tv/html5/f0d770f4/img/call-to-cast-end-screen-multi-user.jpg); }
-.call-to-cast .end-screen.yt-mix { background-image: url(www.youtube.com/s/tv/html5/f0d770f4/img/call-to-cast-end-screen-yt-mix.jpg); }
-.call-to-cast .end-screen.tv-queue { background-image: url(www.youtube.com/s/tv/html5/f0d770f4/img/call-to-cast-end-screen-tv-queue.jpg); }
-.call-to-cast .end-screen.kids-promo { background-image: url(www.youtube.com/s/tv/html5/f0d770f4/img/call-to-cast-end-screen-kids-promo.jpg); }
-.call-to-cast .end-screen.kids-mother-goose { background-image: url(www.youtube.com/s/tv/html5/f0d770f4/img/call-to-cast-end-screen-kids-mother-goose.jpg); }
-.call-to-cast .end-screen.kids-rainbow { background-image: url(www.youtube.com/s/tv/html5/f0d770f4/img/call-to-cast-end-screen-kids-rainbow.jpg); }
-.call-to-cast .end-screen.kids-sesame { background-image: url(www.youtube.com/s/tv/html5/f0d770f4/img/call-to-cast-end-screen-kids-sesame.jpg); }
-.call-to-cast .end-screen.kids-talking-tom { background-image: url(www.youtube.com/s/tv/html5/f0d770f4/img/call-to-cast-end-screen-kids-talking-tom.jpg); }
-.call-to-cast .end-screen.kids-wonderquest { background-image: url(www.youtube.com/s/tv/html5/f0d770f4/img/call-to-cast-end-screen-kids-wonderquest.jpg); }
-.call-to-cast .THEME-cl.end-screen.kids-promo h2.call-to-cast-text { width: 80%; }
-.call-to-cast .THEME-k.end-screen h3.call-to-cast-text { font-size: 3em; line-height: 1.4em; margin-top: 0px; padding-top: 10%; padding-left: 5%; width: 45%; }
-.call-to-cast .end-screen.gaming-heart { background-image: url(www.youtube.com/s/tv/html5/f0d770f4/img/call-to-cast-end-screen-gaming-heart.jpg); }
-.call-to-cast .THEME-g.end-screen h3.call-to-cast-text { font-size: 2.2em; padding-top: 0%; width: 100%; }
-.call-to-cast .end-screen.loki { background-image: url(www.youtube.com/s/tv/html5/f0d770f4/img/call-to-cast-end-screen-loki.jpg); }
-.call-to-cast .THEME-up.end-screen h3.call-to-cast-text { font-size: 2.2em; margin-left: 0%; padding-top: 17em; text-align: center; width: 100%; }
-.call-to-cast .THEME-m.end-screen h2.call-to-cast-text { font-size: 2.2em; margin-bottom: 0px; text-align: center; width: 100%; }
-.call-to-cast .THEME-m.end-screen h3.call-to-cast-text { margin-top: 0px; text-align: center; width: 100%; }
-.call-to-cast .THEME-m.end-screen.music-ready { background-image: url(www.youtube.com/s/tv/html5/f0d770f4/img/call-to-cast-music.jpg); }
-.call-to-cast .THEME-m.end-screen.music-ready .call-to-cast-logo { height: 60%; background: url(www.youtube.com/s/tv/html5/f0d770f4/img/yt-music-logo.png) 50% 100% no-repeat; }
-.call-to-cast .THEME-m.end-screen.music-ready h2.call-to-cast-text { padding-top: 10%; }
-.call-to-cast .THEME-m.end-screen.music-party { height: 100%; background-image: url(www.youtube.com/s/tv/html5/f0d770f4/img/call-to-cast-music.jpg); }
-.call-to-cast .THEME-m.end-screen.music-party .call-to-cast-logo { height: 55%; background: url(www.youtube.com/s/tv/html5/f0d770f4/img/call-to-cast-music-party-logo.png) 50% 100% no-repeat; }
-.call-to-cast .THEME-m.end-screen.music-party .footer { height: 10%; background: url(www.youtube.com/s/tv/html5/f0d770f4/img/yt-music-logo-small.png) 50% 0% no-repeat; }
-.snap-controls { height: 90%; padding: 0.5em; position: relative; }
-.snapped.blurred #snap-buttons, .snapped.blurred #unsupported-mode, .snapped.blurred #ad-callout, .snapped.blurred .logo-container, .snapped.blurred .title-card, .snapped.blurred .up-next { opacity: 0.25 !important; }
-.snapped #dialog, .snapped #guide, .snapped #search, .snapped #settings, .snapped #title-tray, .snapped #transport-controls, .snapped .ad-showing .video-ads, .snapped .advertisement-info, .snapped .application-message, .snapped .browse, .snapped .browse-sets, .snapped .caption-window, .snapped .countdown-ad-callout, .snapped .html5-video-info-panel, .snapped .legend, .snapped .player-video-avatar, .snapped .quality-status, .snapped .skip-ad-button, .snapped .skip-ad-callout, .snapped .toaster, .snapped.blurred.browse-sets-state .title-card, .snapped.blurred.search-state .title-card, .snapped.blurred.settings-state .title-card, .snapped.dialog-focused #snap-progress-bar, .snapped.dialog-focused #watch { display: none !important; }
-.snapped .advertisement-tooltip { color: rgb(160, 160, 160); font-size: 0.4em; left: 0px; top: 0px; }
-.snapped .advertisement-tooltip .remaining_duration { color: rgb(113, 113, 113); }
-.snapped #ad-callout { left: 5%; top: 18%; }
-.snapped .debug-watermark { font-size: 0.2em; width: 100%; }
-#app-markup.snapped { background-color: rgb(35, 31, 32); }
-.snapped #background { display: none; }
-.snapped { font-size: 2em; }
-.snapped.watch-state .logo-container { opacity: inherit; }
-.snapped .icon-youtube-logo::before { content: ""; }
-.snap-controls .logo-container { display: inherit; height: 2.5em; left: 0px; position: absolute; right: 0px; top: 5%; background: url(www.youtube.com/s/tv/html5/f0d770f4/img/yt-logo-fullcolor.png) 50% 0% no-repeat; }
-.snapped .ad-video, .snapped .ad-created .video-stream { height: 270px !important; width: 480px !important; }
-.snapped .video-stream, .snapped .html5-video-content { max-height: 5.6em; transform: scale(0.9) !important; top: 4.4em !important; }
-.snapped .html5-video-controls { top: 9.8em !important; }
-.snapped .player-video-title { color: rgb(160, 160, 160); font-size: 0.7em; line-height: 1.1em; margin: 0px; max-height: 2.2em; white-space: normal; width: 12em; }
-.snapped .player-meta { left: 0px; margin: 0px; position: inherit; top: 0px; }
-.snapped .player-meta .player-video-text { padding-left: 0px; }
-.snapped .player-meta .player-video-details { color: rgb(113, 113, 113); font-size: 0.5em; line-height: 1.1em; }
-.snapped .player-meta .player-video-details > div { margin-left: 0px; }
-.snapped .player-video-details .uploaded-date, .snapped .player-video-details .set-context, .snapped .player-video-details .view-count { font-size: 0.9em; margin-top: 0px; }
-.watch-state.snapped #snap-progress-bar { display: block; }
-#snap-progress-bar { display: none; height: 0.1em; left: 0px; margin-top: 9.25em; padding: 0px; position: relative; top: 0px; width: 100%; background-position: 0% 0%; }
-#snap-progress-bar .progress-bar-disc, #snap-progress-bar .progress-bar-playhead { display: none; }
-#snap-progress-bar div { height: 5px; top: 0px; }
-.snapped .title-card { border: none; height: initial; padding-top: 0.3em; position: inherit; background: none; }
-#unsupported-mode { color: rgb(255, 255, 255); font-size: 0.9em; line-height: 1.2em; padding: 80% 1em 0px; width: 8em; }
-.snapped .loading-indicator { height: 5em; width: 5em; }
-.snapped #spinner { top: 19%; transform: scale(0.5); }
-.engaged.snapped .engagement-indicator { display: inline-block; left: 0px; margin-left: auto; margin-right: auto; position: absolute; right: 0px; text-align: center; font-size: 0.6em !important; top: 4.2em !important; }
-.engaged.snapped .engagement-indicator .stop-listening { background: transparent; }
-.snap-controls #snap-buttons { bottom: 0px; position: absolute; }
-.snap-controls #snap-buttons .focused, .snap-controls #snap-buttons :hover { border-radius: 0.15em; color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); }
-.snap-controls #snap-buttons .button, .snap-controls #snap-buttons .toggle-button { display: inline-block; font-size: 0.8em; height: 1em; margin-left: 0.5em; padding: 1em; position: relative; text-align: center; top: 0px; width: 1em; }
-.snap-controls #snap-buttons div { color: rgb(255, 255, 255); cursor: pointer; vertical-align: middle; }
-.snap-controls #snap-buttons div.disabled:hover { color: rgb(255, 255, 255); background-color: transparent; }
-.snap-controls #snap-buttons div.focused { opacity: 1; }
-.snap-controls #snap-buttons div.disabled { opacity: 0.2; }
-.snap-controls .speakable span, .snap-controls .disabled span { display: none; }
-.engaged .snap-controls .speakable:not(.disabled) span { color: rgb(93, 194, 30); display: block; font-size: 0.6em; left: 0px; overflow: hidden; pointer-events: none; position: absolute; text-align: center; top: -1.5em; width: 100%; word-break: break-all; }
-.lang-case-sensitive .snap-controls .speakable span::first-letter { text-transform: uppercase; }
-.snap-controls .icon-player-play { font-family: youtube-icons; }
-.snap-controls .icon-mute, .snap-controls .icon-fullscreen { background-size: 3em; background-position: 50% 50%; background-repeat: no-repeat; }
-.snap-controls .icon-mute, .snap-controls .icon-mute.disabled { background-image: url(www.youtube.com/s/tv/html5/f0d770f4/img/button-unmute-active.png); }
-.snap-controls .icon-mute.focused, .snap-controls .icon-mute:hover:not(.disabled) { background-image: url(www.youtube.com/s/tv/html5/f0d770f4/img/button-unmute-onhover-active.png); }
-.snap-controls .icon-mute.toggle-selected { background-image: url(www.youtube.com/s/tv/html5/f0d770f4/img/button-mute-active.png); }
-.snap-controls .icon-mute.toggle-selected.focused, .snap-controls .icon-mute.toggle-selected:hover { background-image: url(www.youtube.com/s/tv/html5/f0d770f4/img/button-mute-onhover-active.png); }
-.snap-controls .icon-fullscreen { background-image: url(www.youtube.com/s/tv/html5/f0d770f4/img/button-fullscreen-active.png); }
-.snap-controls .icon-fullscreen.focused, .snap-controls .icon-fullscreen:hover { background-image: url(www.youtube.com/s/tv/html5/f0d770f4/img/button-fullscreen-onhover-active.png); }
-.up-next { height: 3em; padding-top: 1em; }
-.up-next div { color: rgb(160, 160, 160); font-size: 0.6em; }
-.up-next .video-title { height: 1.2em; line-height: 1.2em; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; width: 100%; }
-.up-next .video-thumb { display: inline-block; height: 100%; margin-top: 0.2em; max-height: 2.5em; vertical-align: top; width: 5em; background: 50% 50% / 100% no-repeat; }
-#browse-sets { height: 100%; left: 0px; overflow: hidden; position: absolute; right: 0px; background-color: rgb(34, 34, 34); }
-#browse-sets.no-background, .limited-memory #browse-sets { background-color: rgba(0, 0, 0, 0); }
-#browse-search-bar { cursor: pointer; height: 3em; left: 8em; margin-right: 18em; position: absolute; right: 2.5em; top: 2.5em; background-color: rgba(153, 153, 153, 0.2); }
-.limited-animation #browse-search-bar { background-color: rgb(79, 87, 90); }
-#browse-search-bar.focused, #browse-search-bar:hover { background: rgb(255, 255, 255); }
-#browse-search-bar .icon { color: rgba(255, 255, 255, 0.4); display: block; font-family: youtube-icons; font-size: 1.8em; margin: 0px; padding: 0.35em 0px 0px 0.5em; text-align: left; }
-.limited-animation #browse-search-bar .icon { color: rgb(225, 225, 225); }
-.youtube-logo-top { height: 3.4em; position: absolute; right: 9.5em; top: 2.3em; width: 8.4em; font-family: youtube-icons; }
-#browse-sets.has-header-content .youtube-logo-top { display: none; }
-.youtube-logo::before { color: rgba(153, 153, 153, 0.498039); display: block; font-size: 3.4em; }
-.youtube-unlimited-logo::before { color: rgba(153, 153, 153, 0.498039); display: none; font-size: 3.4em; position: relative; right: 0.5em; }
-.unlimited .youtube-logo::before { display: none; }
-.unlimited .youtube-unlimited-logo::before { display: block; }
-.limited-animation .youtube-unlimited-logo::before, .limited-animation .youtube-logo::before { color: rgb(79, 87, 90); }
-#browse-search-bar.focused .icon, #browse-search-bar:hover .icon { color: rgb(68, 68, 68); }
-#platform-user-icon { height: 4em; position: absolute; right: 3em; top: 2em; width: 4em; background-size: contain; background-position: 50% 50%; background-repeat: no-repeat; }
-#browse-header { height: 60%; position: relative; background-size: cover; background-position: 0px -8em; }
-.limited-memory.limited-animation #browse-header { background-size: contain; background-position: 6em 0px; background-repeat: no-repeat; }
-.no-background #browse-header { background-image: none !important; }
-.browse-sets #browse-header.collapsed { transform: translateY(-27%); }
-.limited-memory .browse-sets #browse-header.collapsed { top: -7em; transform: none; }
-#browse-header .title { color: rgb(225, 225, 225); display: inline-block; font-size: 2.25em; margin-bottom: -0.23em; overflow: hidden; text-overflow: ellipsis; transform-origin: left 50% 0px; white-space: nowrap; width: 23.7em; }
-#browse-header.one-button .title { width: 18.7em; }
-#browse-header.two-buttons .title { width: 14em; }
-#browse-header.collapsed .title { overflow: visible; transform: scale(0.8, 0.8) translateY(-5em) translateX(-1.5em); }
-.browse-header-gradient { height: 100%; width: 100%; background: linear-gradient(rgba(34, 34, 34, 0) 0%, rgba(34, 34, 34, 0) 15%, rgb(34, 34, 34) 100%); }
-.limited-memory .browse-header-gradient { display: none; }
-.no-background .browse-header-gradient { visibility: hidden; }
-.browse-header-metadata { left: 8em; position: absolute; transform: translateZ(0px); }
-.limited-memory.limited-animation .browse-header-metadata { top: 11.6em; }
-.limited-memory.limited-animation #browse-header.collapsed .browse-header-metadata { font-size: inherit; left: 8em; top: 11em; }
-.limited-memory.limited-animation #browse-header.collapsed .browse-header-metadata .browse-header-avatar { height: 4em; margin-right: 1em; width: 4em; }
-.browse-header-avatar { display: inline-block; height: 5em; margin-right: 1.3em; transform-origin: left 50% 0px; width: 5em; background-size: contain; }
-#browse-header.collapsed .browse-header-avatar { transform: scale(0.61, 0.61) translateY(-13.5em); }
-#browse-header.collapsed .browse-header-button-bar { transform: translateY(-6.25em); opacity: 0; }
-.browse-header-button-bar { border-radius: 0.15em; font-size: 1.1em; height: 2.4em; margin-bottom: -0.59em; padding: 0.59em; position: absolute; right: 3.5em; background: rgba(0, 0, 0, 0.4); }
-.limited-animation .browse-header-button-bar { background: rgb(31, 36, 38); }
-.limited-memory.limited-animation .browse-header-button-bar { top: 13em; }
-.browse-header-button-bar, .browse-header-metadata { bottom: 3.9em; }
-.browse-header-button-bar .button { border-radius: 0.12em; color: rgb(225, 225, 225); cursor: default; display: inline-block; height: 2.4em; min-width: 8.2em; overflow: hidden; padding-right: 1em; white-space: nowrap; }
-.browse-header-button-bar .button span { line-height: 2.4em; vertical-align: middle; }
-.browse-header-button-bar .button.focused, .browse-header-button-bar .button.focused:hover { color: rgb(33, 33, 33); background: rgb(225, 225, 225); }
-.browse-header-button-bar .button:hover { background-color: rgb(102, 102, 102); }
-.browse-header-button-bar .button .icon { display: inline-block; font-family: youtube-icons; height: 2.4em; margin: 0px 1em; }
-.browse-header-subscribe .icon::before { font-size: 2em; }
-.browse-header-subscribe.toggle-selected .icon::before { content: ""; font-size: 1em; }
-.browse-header-subscribe.toggle-selected.focused { color: rgb(206, 41, 45); }
-.browse-header-subscribe.disabled { background-color: rgba(0, 0, 0, 0); }
-.browse-content { height: 80%; left: 8em; position: absolute; top: 14.5%; width: 100%; }
-.browse-sets.collapsed .browse-content { transform: translateY(44%); }
-.limited-memory .browse-sets.collapsed .browse-content { top: 20em; transform: none; }
-#browse-header, .browse-header-avatar, .browse-header-button-bar, .browse-content, #browse-header .title { transform: translateZ(0px); transition: -webkit-transform 0.25s; }
-.browse-header-button-bar { transition: opacity 0.25s, transform 0.25s; }
-.limited-animation #browse-header, .limited-animation .browse-header-avatar, .limited-animation #browse-header.collapsed .browse-header-avatar, .limited-animation .browse-content, .limited-animation .browse-header-button-bar, .limited-animation #browse-header .title, .limited-animation .browse-content .shelves, .limited-animation .browse-header-metadata, .limited-animation .shelf #content-container, .limited-animation .shelves > .title, .limited-animation .shelf > .title, .limited-animation .horizontal-list > .content, .limited-animation .horizontal-list, .limited-animation .shelves .carousel { transition: none; transform: none; }
-.limited-animation #browse-header.collapsed .browse-header-metadata { font-size: 0.6em; left: 13.25em; top: 17.75em; }
-.limited-animation #browse-header.collapsed .browse-header-metadata .title { font-size: 3em; }
-.limited-memory #browse-header.collapsed .browse-header-metadata .title { font-size: 1.8em; }
-.limited-animation .browse-content .list { margin-left: -9.5em; width: 126em; }
-.limited-animation .browse-content .shelf > .title { margin-left: 6em; }
-.limited-animation.sets-ui .action-tile:not(.focused), .limited-animation.sets-ui .auto-play-tile:not(.focused) .video-tile, .limited-animation.sets-ui .channel-tile:not(.focused), .limited-animation.sets-ui .playlist-tile:not(.focused), .limited-animation.sets-ui .recent-search-tile:not(.focused), .limited-animation.sets-ui .video-tile:not(.focused), .rockandroll.limited-animation.sets-ui .action-tile:hover:not(.focused), .rockandroll.limited-animation.sets-ui .auto-play-tile:hover:not(.focused) .video-tile, .rockandroll.limited-animation.sets-ui .channel-tile:hover:not(.focused), .rockandroll.limited-animation.sets-ui .playlist-tile:hover:not(.focused), .rockandroll.limited-animation.sets-ui .video-tile:hover:not(.focused) { background-color: rgb(33, 33, 33); }
-.limited-animation.sets-ui .action-tile:hover:not(.focused), .limited-animation.sets-ui .auto-play-tile:hover:not(.focused) .video-tile, .limited-animation.sets-ui .channel-tile:hover:not(.focused), .limited-animation.sets-ui .playlist-tile:hover:not(.focused), .limited-animation.sets-ui .recent-search-tile:hover:not(.focused), .limited-animation.sets-ui .video-tile:hover:not(.focused) { background-color: rgb(65, 65, 65); }
-.browse-content .shelves { margin-left: 0em; transform: translateZ(0px); }
-.browse-content .shelves > .no-content-message, .browse-content .horizontal-list > .no-content-message { margin-left: -8em; }
-.shelves > .no-content-message, .horizontal-list > .no-content-message { display: none; position: absolute; top: 8em; width: 100%; }
-.shelves.no-content > .no-content-message, .horizontal-list.no-content > .no-content-message { display: block; }
-.shelves > .no-content-message .text, .horizontal-list > .no-content-message .text { color: rgb(241, 241, 241); font-size: 1.8em; text-align: center; text-shadow: rgb(0, 0, 0) 0.04em 0.04em; }
-.shelf { width: 100%; }
-.limited-animation .shelf { margin-bottom: 1.8em; }
-.carousel .shelf { position: absolute; }
-.shelf #content-container { transform: translateZ(0px); }
-.shelves > .title, .shelf > .title { color: rgb(153, 153, 153); font-size: 1.6em; margin-bottom: 1em; margin-top: 0.2em; transform: translateZ(0px); white-space: nowrap; }
-.shelves > .title, .shelf.selected > .title { color: rgb(255, 255, 255); }
-.shelf > .title .annotation { color: rgb(119, 119, 119); font-size: 70%; margin-left: 0.5em; }
-.shelf.selected > .title .annotation { color: rgb(221, 221, 221); }
-.horizontal-list.no-model, .shelf.no-model, .survey-shelf.no-model { display: none; }
-.shelf > .icon { display: none; }
-.horizontal-list > .content { font-size: 79%; height: 26em; opacity: 1; transform: translateZ(0px); }
-.horizontal-list.focused > .content { opacity: 1; }
-.horizontal-list, .shelves .carousel, .browse-header-metadata { transform: translateZ(0px); }
-.shelf0to0 { opacity: 1; transform: translateY(0%) scale(1); }
-@-webkit-keyframes shelf0to1-anim { 
-  0% { transform: translateY(0%); }
-  100% { transform: translateY(100%); }
-}
-.shelf0to1 { animation: shelf0to1-anim 200ms forwards; }
-@-webkit-keyframes shelf0to2-anim { 
-  0% { opacity: 1; transform: translateX(0%) translateY(0%) scale(1); }
-  100% { opacity: 0; transform: translateX(-2%) translateY(-11%) scale(0.75); }
-}
-.shelf0to2 { animation: shelf0to2-anim 200ms forwards; }
-@-webkit-keyframes shelf1to0-anim { 
-  0% { transform: translateX(0%) translateY(100%); }
-  100% { transform: translateX(0%) translateY(0%); }
-}
-.shelf1to0 { animation: shelf1to0-anim 200ms forwards; }
-.shelf1to1 { opacity: 1; transform: translateX(0%) translateY(100%) scale(1); }
-@-webkit-keyframes shelf1to2-anim { 
-  0% { transform: translateX(0%) translateY(100%); }
-  99% { transform: translateX(0%) translateY(200%); }
-  100% { opacity: 0; transform: translateX(-2%) translateY(-11%) scale(0.75); }
-}
-.shelf1to2 { animation: shelf1to2-anim 200ms forwards; }
-@-webkit-keyframes shelf2to0-anim { 
-  0% { opacity: 0; transform: translateX(-2%) translateY(-11%) scale(0.75); }
-  100% { opacity: 1; transform: translateX(0%) translateY(0%) scale(1); }
-}
-.shelf2to0 { animation: shelf2to0-anim 200ms forwards; }
-@-webkit-keyframes shelf2to1-anim { 
-  0% { opacity: 1; transform: translateX(0%) translateY(200%); }
-  100% { opacity: 1; transform: translateX(0%) translateY(100%); }
-}
-.shelf2to1 { animation: shelf2to1-anim 200ms forwards; }
-.shelf2to2 { opacity: 0; transform: translateX(-2%) translateY(-11%) scale(0.75); }
-.limited-memory .shelves .list .video-tile:nth-child(1) .video-thumb, .limited-memory .shelves .list .channel-tile:nth-child(1) .video-thumb, .limited-memory.sets-ui #search .horizontal-list .list .video-tile:nth-child(1) .video-thumb, .limited-memory.sets-ui #search .horizontal-list .list .channel-tile:nth-child(1) .video-thumb, .limited-memory.sets-ui #browse .list .video-tile:nth-child(1) .video-thumb, .limited-memory.sets-ui #browse .list .channel-tile:nth-child(1) .video-thumb, .limited-memory.sets-ui #browse .list .video-tile:last-child .video-thumb, .limited-memory.sets-ui #browse .list .channel-tile:last-child .video-thumb { background: none !important; }
-.survey-shelf { position: absolute; }
-.survey-shelf > .title { color: rgb(255, 255, 255); display: inline-block; font-size: 1.6em; margin-bottom: 1em; margin-top: 0.2em; }
-.survey-shelf .action-tile .content > .title { display: none; }
-.survey-shelf .horizontal-list > .content { font-size: 79%; height: 26em; }
-.survey-shelf .description { color: rgb(255, 255, 255); visibility: visible; }
-.survey-shelf .button { display: inline-block; margin-bottom: 1em; margin-left: 2em; }
-.survey-shelf .sliding-highlighter { height: 8em; width: 8em; }
-.survey-shelf .action-tile, .exp-densityBrowse .survey-shelf .action-tile { border: 0px; height: 8em; width: 8em; }
-.survey-shelf .action-tile .content { height: 8em; width: 8em; }
-.survey-shelf .action-tile .description { color: rgb(119, 119, 119); font-size: 1.2em; margin-top: -1.3em; opacity: 1; white-space: nowrap; }
-.exp-densityBrowse .survey-shelf.focused .action-tile .description { display: block; }
-.exp-densityBrowse .survey-shelf .action-tile .description { display: none; }
-.survey-shelf .action-tile .large-action-icon, .exp-densityBrowse .survey-shelf .action-tile .large-action-icon { font-size: 5em; margin-top: 0.26em; padding-right: 0.2em; background-color: transparent; }
-.survey-shelf .action-tile.selected .large-action-icon, .exp-densityBrowse .survey-shelf .action-tile.selected .large-action-icon { color: rgb(255, 255, 255); }
-.survey-shelf .action-tile.focused .large-action-icon, .exp-densityBrowse .survey-shelf .action-tile.focused .large-action-icon { color: rgb(34, 34, 34); }
-.survey-shelf .button.focused { border-radius: 0.1em; color: rgb(34, 34, 34); padding: 0.2em; background-color: rgb(255, 255, 255); }
-.survey-shelf .button { color: rgb(119, 119, 119); }
-.limited-animation .survey-shelf { margin-bottom: 5em; position: relative; }
-.limited-animation .survey-shelf > .title { margin-left: 6em; }
-.limited-animation .exp-densityBrowse .survey-shelf > .title { margin-left: 5em; }
-.limited-animation .survey-shelf .horizontal-list { margin-left: 17.5em; }
-.limited-animation .exp-densityBrowse .survey-shelf .horizontal-list { margin-left: 13.5em; }
-.limited-animation .exp-densityBrowse .survey-shelf .action-tile .large-action-icon { margin-top: 0.12em; }
-.limited-animation .exp-densityBrowse .survey-shelf .action-tile .description { display: block; }
-#guide { box-shadow: black 0.1em 0px 1em 0em; height: 100%; left: 0px; overflow: hidden; position: absolute; transform: translateX(-23em) translateZ(0px); transition: transform 400ms cubic-bezier(0.4, 0, 0.2, 1); width: 28em; }
-.limited-memory.limited-animation #guide { box-shadow: none; transform: none; }
-.limited-memory #guide.focused { border-right-style: none; }
-#guide.focused { transform: translateX(0px); }
-#guide:hover { background-color: rgba(255, 255, 255, 0.2); }
-.limited-animation #guide:hover { background: none; }
-.limited-animation #guide, .limited-animation #guide #user-info-background, .limited-animation .guide-carousel-background { transition: none; }
-.guide-carousel-background { height: 100%; left: 0em; position: absolute; top: 0em; width: 100%; transition: background-color 400ms; background-color: rgba(0, 0, 0, 0.2); }
-.limited-animation .guide-carousel-background, .limited-animation #guide #user-info-background { background-color: rgb(31, 36, 38); }
-.limited-animation #guide:hover .guide-carousel-background, .limited-animation #guide:hover #user-info-background { background-color: rgb(56, 65, 69); }
-.limited-animation.limited-memory .guide-carousel-background, .limited-animation.limited-memory #guide #user-info-background { background-color: rgb(223, 35, 35); }
-.limited-memory .guide-carousel-background, .limited-memory #guide #user-info-background, #guide .list { display: none; }
-.limited-memory #guide.focused .guide-carousel-background, .limited-memory #guide.focused.logged-in #user-info-background, #guide.focused .list { display: block; }
-.logged-in .guide-carousel-background { top: 8.5em; }
-#guide.focused .guide-carousel-background, #guide.focused:hover .guide-carousel-background { background-color: rgb(223, 35, 35); }
-.collapsed-guide, #guide.focused .collapsed-guide { display: none; }
-.collapsed-guide-icons { color: rgb(133, 136, 138); font-size: 1.6em; left: 15em; opacity: 1; position: absolute; top: 7.5em; }
-.collapsed-guide-icon { font-family: youtube-icons; margin-top: 1em; margin-bottom: 1em; text-align: center; width: 2em; }
-#guide .collapsed-guide-icons { transition: opacity 150ms 450ms; }
-.limited-memory .collapsed-guide-icons { left: 1em; }
-.limited-animation #guide .collapsed-guide-icons { transition: none; }
-#guide.focused .collapsed-guide-icons { opacity: 0; transition: none; }
-#guide .collapsed-guide-icon.icon-guide-my-subs { display: none; }
-#guide.logged-in .collapsed-guide-icon.icon-guide-my-subs { display: block; }
-#guide.logged-in .collapsed-guide-icon.icon-popular { display: none; }
-.collapsed-guide-icon.icon-music { font-size: 0.925em; padding-left: 0.0375em; }
-.limited-memory .collapsed-guide { border-right-width: 0.2em; border-right-style: solid; border-right-color: rgb(17, 17, 17); display: block; height: 100%; left: 0px; width: 6em; background-color: rgb(31, 36, 38); }
-#error-message { display: none; }
-#guide.error.focused #error-message { color: rgb(255, 255, 255); display: block; font-size: 2em; padding: 2em; position: absolute; text-align: center; top: 12em; }
-#guide .sliding-highlighter { display: none; width: 100%; height: 4.2em; opacity: 0; }
-#guide.focused .sliding-highlighter { opacity: 1; }
-#guide.focused .sliding-highlighter { display: block; }
-#guide.focused #user-info-background { visibility: visible; }
-#guide #user-info-background { transition: background-color 400ms; background-color: rgba(0, 0, 0, 0.2); }
-#guide.focused #user-info-background, #guide.focused:hover #user-info-background { background-color: rgb(147, 23, 23); }
-.logged-in #user-info-background { display: block; }
-#guide.focused .guide-user-text { visibility: visible; }
-#guide .carousel, #guide .list, #guide .sliding-highlighter { color: rgb(255, 255, 255); margin-top: 2em; }
-#guide.logged-in .carousel, #guide.logged-in .list, #guide.logged-in .sliding-highlighter { margin-top: 1em; }
-#guide .carousel.hidden { visibility: hidden; display: block !important; }
-#guide .list { position: relative; }
-.carousel .guide-button { position: absolute; }
-.list .guide-button { margin-bottom: 0.1em; }
-.guide-button { font-size: 1.6em; height: 1.83em; overflow: hidden; padding: 0.5em 0.27em 0.3em 2.9em; white-space: nowrap; }
-.guide-button:hover { cursor: pointer; padding-right: 1.78em; background: rgb(153, 0, 0); }
-.guide-button.selected:hover { background: transparent; }
-.guide-button.disabled:hover { cursor: inherit; padding-right: inherit; background: transparent; }
-.guide-button.disabled { padding-left: 2.1em; text-transform: uppercase; }
-.guide-button.disabled.footer { text-transform: none; }
-.guide-button-icon { color: rgb(239, 145, 145); display: inline-block; font-family: youtube-icons; font-size: 1.2em; margin-top: 0.2em; text-align: center; width: 1.8em; }
-.guide-button.disabled .guide-button-icon { display: none; }
-.guide-user-text, .guide-button-title { color: rgb(251, 218, 218); display: inline-block; line-height: 1.7em; overflow: hidden; padding-left: 0.5em; text-overflow: ellipsis; vertical-align: top; }
-.guide-button.disabled .guide-button-title { color: rgb(239, 145, 145); }
-.guide-user-text { visibility: hidden; margin-left: -0.4em; position: relative; top: 30%; text-overflow: ellipsis; width: 9.5em; }
-.guide-button-title { width: 11em; }
-.engaged .guide-button-title { width: 8em; }
-.guide-button.footer .guide-button-title { font-size: 75%; padding-top: 0.8em; width: 21.15em; }
-.guide-button-icon .image, #guide-user-avatar { height: 1em; width: 1em; background: 50% 50% / 100% no-repeat; }
-.guide-button-icon .image { box-shadow: rgb(239, 145, 145) 0px 0px 0px 1px; margin: 0px 0.4em; background-color: rgb(255, 255, 255); }
-.guide-button.focused .guide-button-icon .image { box-shadow: none; }
-.guide-button .image { display: none; }
-.guide-button.has-image .image { display: block; }
-#guide-user-avatar { border-radius: 50%; box-shadow: rgba(239, 145, 145, 0.4) 0px 0px 0px 0.05em, rgb(239, 145, 145) 0px 0px 0.05em; display: inline-block; font-size: 2.31em; margin: 0.2em 0.2em 0.2em 0.4em; }
-#guide-user-avatar, .guide-user-text, .guide-button-icon, .guide-button-title { transition: color 50ms 25ms; }
-.no-transition .guide-button .guide-button-icon, .no-transition .guide-button .guide-button-title, .limited-animation .guide-button .guide-button-icon, .limited-animation .guide-button .guide-button-title, .limited-animation #guide-user-avatar, .limited-animation .guide-user-text { transition: none; }
-.guide-button.focused .guide-button-icon, .guide-button.focused .guide-button-title { color: rgb(223, 35, 35); }
-.limited-animation .guide-button.focused { background-color: rgb(255, 255, 255); }
-.user-info-container { height: 2.6em; padding: 1.1em 0em 0em 1.8em; font-size: 1.6em; white-space: nowrap; }
-#user-info-background { display: none; height: 8.53em; position: relative; width: inherit; z-index: 1; }
-.sliding-highlighter .select { display: none; height: 2.9em; min-width: 3.5em; padding: 1.3em 0.6em 0em; position: absolute; right: 0px; text-align: center; background-color: rgba(0, 0, 0, 0.8); }
-.engaged .guide .sliding-highlighter .select { display: block; }
-.unlimited .guide-user-text { line-height: 1em; }
-.guide-user-unlimited { font-size: 0.8em; color: rgb(170, 136, 136); text-transform: uppercase; }
-#settings { height: 100%; overflow: visible; position: absolute; right: 0px; left: 4.5em; }
-.settings-shelf { height: 24em; margin-left: 3.5em; margin-top: 1em; position: absolute; top: 19%; width: 100%; }
-.settings-title { color: rgb(255, 255, 255); font-size: 1.2em; line-height: 3em; white-space: nowrap; }
-.limited-animation .settings .content .list { width: 130em; }
-.limited-animation #settings-items { margin-left: -17em; }
-.settings-horizontal-list > .content { font-size: 79%; }
-.settings-horizontal-list > .no-content-message { display: none; }
-.pointer-overlay { display: block; }
-.pointer-overlay .nav-arrow { cursor: pointer; display: none; height: 5em; opacity: 0.5; position: absolute; width: 5em; background-image: url(www.youtube.com/s/tv/html5/f0d770f4/img/motion-control-sprite.png); background-size: 100%; background-repeat: no-repeat; }
-.pointer-overlay.enabled .nav-arrow { display: block; }
-.pointer-overlay .nav-arrow:hover { opacity: 1; }
-.pointer-overlay .up-arrow { left: 45%; top: 18%; background-position: 0px 100%; }
-.pointer-overlay .down-arrow { bottom: 11%; left: 45%; background-position: 0px 0%; }
-.pointer-overlay .left-arrow { top: 50%; left: 5%; background-position: 0px 33.3%; }
-.settings-focused .pointer-overlay .left-arrow, .browse-sets-state .pointer-overlay .left-arrow, .search-state .pointer-overlay .left-arrow { left: 7%; }
-.pointer-overlay .right-arrow { top: 50%; right: 5%; background-position: 0px 66.7%; }
-#search.input-open + .pointer-overlay .up-arrow, .post-play-state .pointer-overlay .up-arrow, .post-play-state .pointer-overlay .down-arrow { display: none; }
-.watch-state .pointer-overlay .down-arrow { bottom: 2%; }
-.search-state.guide-focused .pointer-overlay .up-arrow { top: 20%; }
-@media screen and (aspect-ratio: 5/4) { 
-  #dialog.browse-sets #dialog-wrapper { padding: 1.3em 2em; }
-  .flag-list-container.flag-options-dialog { font-size: 0.875em; }
-}
-@media screen and (max-aspect-ratio: 4/3) { 
-  .player-controls #button-list { font-size: 0.875em; }
-  #transport-controls.ad-active .player-controls-widget .player-controls #button-list { font-size: 1em; }
-  .fresh-transport-controls .progress-bar { width: 70%; }
-  .fresh-transport-controls #player-time-elapsed, .fresh-transport-controls .player-time-total { font-size: 1.1em; width: 10%; }
-}
-@media screen and (aspect-ratio: 4/3) { 
-  #browse-header .title { width: 18.3em; }
-  #browse-header.one-button .title { width: 13.2em; }
-  #browse-header.two-buttons .title { width: 8.5em; }
-  .sets-ui .flag-list.grid { font-size: 0.8em; }
-  .flag-claim { font-size: 1.4em; }
-  #search .search-pairing { font-size: 0.7em; }
-  .sets-ui .debug-dialog { font-size: 0.8em; }
-  .voice-footer .list { padding-top: 0px; width: 16em; }
-}
-@media screen and (min-width: 3840px) { 
-  .player-controls { top: 21px; }
-}
-@media screen and (min-width: 1919px) { 
-  .opera .video-stream { height: 1080px; width: 1920px; }
-  .watch-video-tile, .watch-list .button { padding: 10px; }
-}
-@media screen and (max-height: 576px) and (max-width: 1024px) and (min-width: 640px) { 
-  .countdown-ad-callout { font-size: 1.3em; right: 10%; }
-  .opera .video-stream { height: 576px; width: 1024px; }
-  #keyboard-grid .button { width: 0.7em; }
-  #dialog-wrapper { padding-left: 4em; padding-right: 4em; }
-  .pairing { transform-origin: 0px 50% 0px; transform: scale(0.7); }
-  .browse-sets #browse-header.collapsed { transform: translateY(-19%); }
-}
-@media screen and (max-height: 480px) and (max-width: 720px) { 
-  .countdown-ad-callout { font-size: 0.9em; right: 5%; }
-  .skip-ad-callout { right: 3%; }
-  .opera .video-stream { height: 480px; }
-  #search .pairing .alternatives { margin: 0px 0px 0px 1em; }
-  #keyboard-grid .button { width: 0.8em; }
-  #search .pairing .search-message .title { margin-top: 0.7em; }
-  #dialog-view .pairing { font-size: 0.8em; margin-top: 2em; }
-  .watch-list .list { margin-left: -4em; }
-}
-@media screen and (max-height: 480px) and (max-width: 640px) { 
-  .opera .video-stream { height: 480px; width: 640px; }
-  #keyboard-grid .button { width: 0.7em; }
-  #dialog-view .reset-help { display: block; width: 27em; }
-  .watch-video-tile, .watch-list .button { padding: 4px; }
-  .browse-header-metadata { bottom: 3.9em; }
-  .browse-sets #browse-header.collapsed { transform: translateY(-27%); }
-  .voice-footer .list { font-size: 0.6em; margin-left: 35%; width: 35%; }
-  .engaged .engagement-indicator { display: inline-block; font-size: 1.3em; height: 3em; margin-bottom: 1.5em; }
-  .engaged .engagement-indicator .title { display: inline-block; }
-  .engagement-indicator .stop-listening .icon { display: inline-block; height: 3em; left: 0px; top: 0px; width: 15%; }
-}
-@media screen and (max-width: 1440px) and (min-height: 1080px) { 
-  .video-tile-container { transform: scale(0.7); transform-origin: right top 0px; }
-  .player-controls #button-list .button, .player-controls #button-list .toggle-button { margin-right: 0.2em; margin-left: 0.2em; }
-  .fresh-transport-controls .progress-bar { width: 59%; }
-  .fresh-transport-controls #player-time-elapsed, .fresh-transport-controls .player-time-total { font-size: 1em; width: 14%; }
-  .fresh-transport-controls .button, .fresh-transport-controls .toggle-button { font-size: 1.1em; }
-  .fresh-transport-controls #transport-more-button { font-size: 1.7em; }
-  #dialog-wrapper { padding: 1.3em 3em; }
-  .dialog-contents { font-size: 95%; }
-  #dialog-wrapper .connection-steps { padding: 0px; }
-  #dialog-wrapper .pairing .qr-code, #dialog-wrapper .pairing .connected-list { margin: 0.2em; }
-  .context-menu-list { left: 30%; right: 30%; }
-  .voice-footer .list { font-size: 0.65em; padding-left: 22em; padding-right: 18em; padding-top: 1.3em; }
-}
-.sets-ui .carousel .item, .sets-ui .carousel .channel-tile, .sets-ui .carousel .auto-play-tile { background-color: inherit !important; }
-.sets-ui .carousel .item:hover, .sets-ui .carousel .channel-tile:hover, .sets-ui .carousel .auto-play-tile:hover { background-color: rgba(255, 255, 255, 0.0980392) !important; }
-.sets-ui .tile .channel-bottom > .title, .sets-ui .tile .tile-bottom > .title { color: rgb(225, 225, 225); }
-.sets-ui .tile .channel-bottom > .details, .sets-ui .tile .tile-bottom > .details { color: rgb(100, 100, 100); }
-.sets-ui .tile.focused.selected .channel-bottom > .title, .sets-ui .tile.focused.selected .tile-bottom > .title { color: rgb(33, 33, 33); }
-.sets-ui .tile.focused.selected .channel-bottom > .details, .sets-ui .tile.focused.selected .tile-bottom > .details { color: rgb(141, 141, 141); }
-.sets-ui #transport-controls .player-controls #button-list div.icon-player-more, .sets-ui #transport-controls .player-controls #button-list div.icon-player-less { color: rgb(255, 255, 255); }
-.sets-ui #transport-controls .player-controls #button-list div.icon-player-more.focused, .sets-ui #transport-controls .player-controls #button-list div.icon-player-less.focused { color: rgb(34, 34, 34); }
-.sets-ui .settings-title { font-size: 1.5em; }
-.sets-ui .action-tile .title { font-size: 2.4em; margin-left: 0.1em; margin-right: 0.1em; }
-.sets-ui .flag-list.grid { margin: 3.25em; }
-.sets-ui .flag-list .list { text-align: left; }
-.sets-ui .flag-list .button { width: 14em; text-align: center; }
-.sets-ui .flag-example { top: 20%; }
-.sets-ui .flag-video { margin-left: 2em; text-align: left; }
-.sets-ui .flag-claim .privacy-invasion { margin: auto; width: 50%; }
-.sets-ui .authentication-error-dialog, .sets-ui .delete-video-error, .sets-ui .missing-channel-error, .sets-ui .server-unavailable, .sets-ui .network-error-dialog { margin-top: 1em; }
-.sets-ui .eureka-authorization-dialog .icon, .sets-ui .eureka-player-error-dialog .icon { margin-left: 3em; }
-.sets-ui .eureka-authorization-dialog .info, .sets-ui .eureka-player-error-dialog .info { width: 50%; }
-.sets-ui .debug-dialog { padding: 0px 1em; text-align: left; }
-.sets-ui .text-dialog #dialog-view { width: auto; }
-.sets-ui #dialog .platform-container { font-size: 0.6em; margin-bottom: 0.5em; }
-.sets-ui .paid-channel-dialog { margin: 1em; }
-.sets-ui #dialog .connection-instructions .icon-settings-pair { display: none; }
-.sets-ui .closed-captions-dialog { text-align: left; padding-left: 1em; }
-.sets-ui .delete-video-error, .sets-ui .paid-scope-dialog, .sets-ui .video-edit-error, .sets-ui .video-processing, .sets-ui .video-upload-error { margin: 3em; font-size: 1.6em; }
-.limited-animation .auto-play-tile.focused .video-tile { background-color: rgb(241, 241, 241); }
-.limited-animation.sets-ui .title-card { background: linear-gradient(rgba(0, 0, 0, 0.901961), rgba(0, 0, 0, 0.8), transparent); }
-.limited-animation.sets-ui #search #text-box-background, .limited-animation.sets-ui #search #search-text-entry { background-color: rgba(0, 0, 0, 0); }
-.sets-ui .scrolling-text { text-align: left; padding-left: 1em; height: 20em; }
-.sets-ui #dialog .scrollbar { right: 11em; }
-.sets-ui #dialog-view .reset-help { width: 20em; }
-.sets-ui #dialog.remote-reset-dialog .buttons { position: inherit; }
-.sets-ui #dialog.remote-reset-dialog .reset-help { height: 11em; padding-left: 1em; text-align: left; }
-.sets-ui #dialog.remote-reset-dialog .connected-list { margin-right: 2em; }
-.sets-ui .dialog-focused #legend { bottom: 17%; right: 16%; }
-.exp-densityFiveTiles .horizontal-list > .content { font-size: 59%; }
-.exp-densityFiveTiles .shelf > .title { font-size: 1.5em; margin-bottom: 0.75em; margin-top: 0px; }
-.exp-densityFiveTiles .channel-bottom .title, .exp-densityFiveTiles .tile-bottom .title { font-size: 1.75em; }
-.exp-densityFiveTiles .tile-bottom .details { font-size: 1.5em; height: 50%; margin: 0.2em 1em 0px 0px; }
-.exp-densityFiveTiles .channel-top .video-thumb { border-radius: 50%; }
-.limited-animation .exp-densityFiveTiles .browse-content .list { margin-left: -8em; width: 155em; }
-.exp-densityFourTiles .horizontal-list > .content { font-size: 67%; }
-.exp-densityFourTiles .shelf > .title { font-size: 1.5em; margin-bottom: 0.75em; margin-top: 0px; }
-.exp-densityFourTiles .channel-bottom .title, .exp-densityFourTiles .tile-bottom .title { font-size: 1.75em; }
-.exp-densityFourTiles .tile-bottom .details { font-size: 1.5em; height: 50%; margin: 0.2em 1em 0px 0px; }
-.limited-animation .exp-densityFourTiles .browse-content .list { margin-left: -8.5em; width: 155em; }
-.exp-densityFourTiles .channel-top .video-thumb { border-radius: 50%; }
-.exp-densityHideMetadata .shelf .horizontal-list .tile-bottom, .exp-densityHideMetadata .shelf .horizontal-list .channel-bottom { display: none; }
-.exp-densityHideMetadata .shelf.selected .horizontal-list .tile-bottom, .exp-densityHideMetadata .shelf.selected .horizontal-list .channel-bottom { display: block; }
-.exp-densityHideMetadata .horizontal-list .video-tile .tile-top .decoration { display: none; }
-.exp-densityHideMetadata #search .tile-top .decoration, .exp-densityHideMetadata #post-play-list .tile-top .decoration, .exp-densityHideMetadata .shelf.selected .horizontal-list .tile-top .decoration { display: block; }
-.exp-densityHideMetadata .shelf:not(.selected) .channel-tile .video-thumb { height: 70%; width: 70%; }
-.sets-ui .exp-densityHideMetadata .shelf:not(.selected) .carousel .item:hover, .sets-ui .exp-densityHideMetadata .shelf:not(.selected) .carousel .channel-tile:hover { background-color: inherit !important; }
-.limited-animation .exp-densityHideMetadata .browse-content .list .shelf:nth-child(1) { margin-bottom: 9.5em; }
-.limited-animation.sets-ui .exp-densityHideMetadata .channel-tile:not(.focused), .limited-animation.sets-ui .exp-densityHideMetadata .video-tile:not(.focused) { background-color: inherit; }
-.rockandroll.limited-animation.sets-ui .exp-densityHideMetadata .channel-tile:hover:not(.focused), .rockandroll.limited-animation.sets-ui .exp-densityHideMetadata .video-tile:hover:not(.focused) { background-color: inherit; }</style><style>@font-face { font-family: roboto-regular; src: url(www.youtube.com/s/tv/html5/misc/fonts/Roboto-Regular-20140804.ttf) format(truetype); }
-html { font-family: roboto-regular; }
-body { font-family: roboto-regular; }
-.button span { font-family: roboto-regular; }
-.toggle-button span { font-family: roboto-regular; }
-@font-face { font-family: youtube-icons; src: url(www.youtube.com/s/tv/html5/f0d770f4/img/icons.ttf) format(truetype); }</style><script>(function (resourcePaths) {
-    var imageContainer = document.createElement('div');
-    imageContainer.style.position = 'absolute';
-    imageContainer.style.left = '0px';
-    imageContainer.style.top = '0px';
-    imageContainer.style.visibility = 'hidden';
-
-    var pendingResourceCount = 0;
-    resourcePaths.forEach(function(resourcePath) {
-      console.log(resourcePath);
-      if (/\.(jpeg|jpg|png)$/i.test(resourcePath)) {
-        ++pendingResourceCount;
-        console.log(pendingResourceCount);
-        var imageElement = new Image();
-        imageElement.src = resourcePath;
-        imageContainer.appendChild(imageElement);
-      }
-    });
-  })(["www.youtube.com/s/tv/fonts/CutiveMono-Regular.woff","www.youtube.com/s/tv/fonts/PTM55FT.woff","www.youtube.com/s/tv/fonts/PT_Serif-Caption-Web-Regular.woff","www.youtube.com/s/tv/fonts/PT_Sans-Caption-Web-Regular.woff","www.youtube.com/s/tv/fonts/Handlee-Regular.woff","www.youtube.com/s/tv/fonts/DancingScript-Regular.woff","www.youtube.com/s/tv/fonts/MarcellusSC-Regular.woff","www.youtube.com/s/tv/html5/f0d770f4/img/circle.png","www.youtube.com/s/tv/html5/f0d770f4/img/icon-playbutton.png","www.youtube.com/s/tv/html5/f0d770f4/img/cast_disconnected_blue.png","www.youtube.com/s/tv/html5/f0d770f4/img/pair_promo.png","www.youtube.com/s/tv/html5/f0d770f4/img/dial-sprite.png","www.youtube.com/s/tv/html5/f0d770f4/img/volume_mute_pressed.png","www.youtube.com/s/tv/html5/f0d770f4/img/volume_0_pressed.png","www.youtube.com/s/tv/html5/f0d770f4/img/volume_1_pressed.png","www.youtube.com/s/tv/html5/f0d770f4/img/volume_2_pressed.png","www.youtube.com/s/tv/html5/f0d770f4/img/icon-help.png","www.youtube.com/s/tv/html5/f0d770f4/img/icon-feedback.png","www.youtube.com/s/tv/html5/f0d770f4/img/flag.png","www.youtube.com/s/tv/html5/f0d770f4/img/pairing-promo-combo.png","www.youtube.com/s/tv/html5/f0d770f4/img/edit_tile_light.png","www.youtube.com/s/tv/html5/f0d770f4/img/edit_tile_dark.png","www.youtube.com/s/tv/html5/f0d770f4/img/trash_tile_light.png","www.youtube.com/s/tv/html5/f0d770f4/img/trash_tile_dark.png","www.youtube.com/s/tv/html5/f0d770f4/img/icon-privacy-check-light.png","www.youtube.com/s/tv/html5/f0d770f4/img/icon-privacy-check-dark.png","www.youtube.com/s/tv/html5/f0d770f4/img/icon-privacy-private-light.png","www.youtube.com/s/tv/html5/f0d770f4/img/icon-privacy-private-dark.png","www.youtube.com/s/tv/html5/f0d770f4/img/icon-privacy-public-light.png","www.youtube.com/s/tv/html5/f0d770f4/img/icon-privacy-public-dark.png","www.youtube.com/s/tv/html5/f0d770f4/img/icon-privacy-unlisted-light.png","www.youtube.com/s/tv/html5/f0d770f4/img/icon-privacy-unlisted-dark.png","www.youtube.com/s/tv/html5/f0d770f4/img/icon-aaa-engaged.png","www.youtube.com/s/tv/html5/f0d770f4/img/legend-sprite-desktop.png","www.youtube.com/s/tv/html5/f0d770f4/img/legend-sprite-bbb.png","www.youtube.com/s/tv/html5/f0d770f4/img/legend-sprite-ccc.png","www.youtube.com/s/tv/html5/f0d770f4/img/legend-sprite-ddd.png","www.youtube.com/s/tv/html5/f0d770f4/img/legend-sprite-eee.png","www.youtube.com/s/tv/html5/f0d770f4/img/legend-sprite-fff.png","www.youtube.com/s/tv/html5/f0d770f4/img/legend-sprite-ggg.png","www.youtube.com/s/tv/html5/f0d770f4/img/icon-playbutton.png","www.youtube.com/s/tv/html5/f0d770f4/img/player-play.png","www.youtube.com/s/tv/html5/f0d770f4/img/player-pause.png","www.youtube.com/s/tv/html5/f0d770f4/app-prod.css","www.youtube.com/s/tv/html5/f0d770f4/img/call-to-cast-yt-logo.png","www.youtube.com/s/tv/html5/f0d770f4/img/yt-kids-logo.png","www.youtube.com/s/tv/html5/f0d770f4/img/call-to-cast-end-screen-multi-user.jpg","www.youtube.com/s/tv/html5/f0d770f4/img/call-to-cast-end-screen-yt-mix.jpg","www.youtube.com/s/tv/html5/f0d770f4/img/call-to-cast-end-screen-tv-queue.jpg","www.youtube.com/s/tv/html5/f0d770f4/img/call-to-cast-end-screen-kids-promo.jpg","www.youtube.com/s/tv/html5/f0d770f4/img/call-to-cast-end-screen-kids-mother-goose.jpg","www.youtube.com/s/tv/html5/f0d770f4/img/call-to-cast-end-screen-kids-rainbow.jpg","www.youtube.com/s/tv/html5/f0d770f4/img/call-to-cast-end-screen-kids-sesame.jpg","www.youtube.com/s/tv/html5/f0d770f4/img/call-to-cast-end-screen-kids-talking-tom.jpg","www.youtube.com/s/tv/html5/f0d770f4/img/call-to-cast-end-screen-kids-wonderquest.jpg","www.youtube.com/s/tv/html5/f0d770f4/img/call-to-cast-end-screen-gaming-heart.jpg","www.youtube.com/s/tv/html5/f0d770f4/img/call-to-cast-end-screen-loki.jpg","www.youtube.com/s/tv/html5/f0d770f4/img/call-to-cast-music.jpg","www.youtube.com/s/tv/html5/f0d770f4/img/yt-music-logo.png","www.youtube.com/s/tv/html5/f0d770f4/img/call-to-cast-music.jpg","www.youtube.com/s/tv/html5/f0d770f4/img/call-to-cast-music-party-logo.png","www.youtube.com/s/tv/html5/f0d770f4/img/yt-music-logo-small.png","www.youtube.com/s/tv/html5/f0d770f4/img/yt-logo-fullcolor.png","www.youtube.com/s/tv/html5/f0d770f4/img/button-unmute-active.png","www.youtube.com/s/tv/html5/f0d770f4/img/button-unmute-onhover-active.png","www.youtube.com/s/tv/html5/f0d770f4/img/button-mute-active.png","www.youtube.com/s/tv/html5/f0d770f4/img/button-mute-onhover-active.png","www.youtube.com/s/tv/html5/f0d770f4/img/button-fullscreen-active.png","www.youtube.com/s/tv/html5/f0d770f4/img/button-fullscreen-onhover-active.png","www.youtube.com/s/tv/html5/f0d770f4/img/motion-control-sprite.png","www.youtube.com/s/tv/html5/misc/fonts/Roboto-Regular-20140804.ttf","www.youtube.com/s/tv/html5/f0d770f4/img/icons.ttf","www.youtube.com/s/tv/html5/f0d770f4/img/default_bg.jpg","i.ytimg.com/vi/_TWbD3MKfMI/hqdefault.jpg","i.ytimg.com/vi/vvFHyFW_jFc/hqdefault.jpg","i.ytimg.com/vi/q14aPbvbvl8/hqdefault.jpg","i.ytimg.com/vi/M9WlASe5ThU/hqdefault.jpg","i.ytimg.com/vi/59_zMJRhFM0/hqdefault.jpg","i.ytimg.com/vi/tnfPNYpi8rc/hqdefault.jpg","i.ytimg.com/vi/F50yjSws9gQ/hqdefault.jpg","i.ytimg.com/vi/rs-Ou-gjReQ/hqdefault.jpg","i.ytimg.com/vi/x5ZxRObLLzE/hqdefault.jpg","i.ytimg.com/vi/LZoilVdo7Hw/hqdefault.jpg","i.ytimg.com/vi/0vEKItRNIb0/hqdefault.jpg","i.ytimg.com/vi/8VstEBbwhnc/hqdefault.jpg","i.ytimg.com/vi/qkKRkfZYhlE/hqdefault.jpg","i.ytimg.com/vi/MODTYlzxY9U/hqdefault.jpg","i.ytimg.com/vi/D-YPnDvTCmI/hqdefault.jpg","i.ytimg.com/vi/wNRUzu4fTgw/hqdefault.jpg","i.ytimg.com/vi/GwzBLYGRj6c/hqdefault.jpg","i.ytimg.com/vi/rtzlT78OEks/hqdefault.jpg","i.ytimg.com/vi/eOOyxSMI0aE/hqdefault.jpg","i.ytimg.com/vi/RL7grUEo960/hqdefault.jpg","i.ytimg.com/vi/2A07xMhKC6g/hqdefault.jpg","i.ytimg.com/vi/Z31LDqbhN8U/hqdefault.jpg","i.ytimg.com/vi/zzmrTdAtEu4/hqdefault.jpg","i.ytimg.com/vi/1dXVzBU5p-Q/hqdefault.jpg","i.ytimg.com/vi/spC883rn6zk/hqdefault.jpg","i.ytimg.com/vi/XilhAJZ2qxs/hqdefault.jpg","i.ytimg.com/vi/tCehxI5a1y0/hqdefault.jpg","i.ytimg.com/vi/qrZcKwcVwk8/hqdefault.jpg","i.ytimg.com/i/F0pVplsI8R5kcAqgtoRqoA/1.jpg","i.ytimg.com/i/-9-kyTW8ZkZNDHQJ6FgpwQ/1.jpg","i.ytimg.com/i/Egdi0XIXXZ-qJOFPf4JSKw/1.jpg","i.ytimg.com/i/OpNcN46UbXVtpKMrmU4Abg/1.jpg","i.ytimg.com/i/YfdidRxbB8Qhf0Nx7ioOYw/1.jpg","i.ytimg.com/i/4R8DWoMoI7CAwX8_LjQHig/1.jpg","yt3.ggpht.com/-dL2jeHlm2Ok/AAAAAAAAAAI/AAAAAAAAAAA/ZCMMkRj-hrw/s88-c-k-no/photo.jpg","i.ytimg.com/i/xAgnFbkxldX6YUEvdcNjnA/1.jpg","i.ytimg.com/i/i-g4cjqGV7jvU8aeSuj0jQ/1.jpg"]);</script></head>
-  <body class="desktop sets-ui lang-en_US lang-case-sensitive" style="font-size: 150%;">
-    
-    <div id="leanback"><div id="app-markup" class="focused exp-autoOpenGuide exp-mdxIgnoreFlings exp-innertubeCountdown exp-enableSafetyModeRename exp-atomSubscriptionsMultirowShelves browse-sets-state guide-focused     application" tabindex="-1">  <div id="background" class="no-model background" tabindex="-1" style="background-image: url(www.youtube.com/s/tv/html5/f0d770f4/img/default_bg.jpg);"></div>  <div id="watch" class="no-model watch" tabindex="-1">  <div id="leanback-player-container"><div class="html5-video-player el-leanback ytp-no-controls" tabindex="-1" id="movie_player" data-version="//s.ytimg.com/yts/jsbin/html5player-new-en_GB-vflmdFuIW/html5player-new.js"><div class="html5-video-container"><video class="video-stream html5-main-video" style="width: 1920px; height: 1080px; left: 0px; top: -1080px; transform: none;"></video><div class="html5-video-content" style="width: 1920px; height: 1080px; left: 0px; top: 0px;"></div></div></div></div>  <div class="title-card no-model watch-title-tray" id="title-tray" tabindex="-1">  <div class="player-meta">    <div class="user-details hidden">      <div class="message">Added by </div>      <div class="avatar no-model image" data-image-url="{{addedByUserAvatarUrl}}" tabindex="-1"></div>    </div>    <div class="player-video-avatar no-model image" data-image-url="{{channelAvatarUrl}}" tabindex="-1"></div>    <div class="player-video-text">      <div class="player-video-title"></div>      <div class="player-video-details">        <div class="username"></div>        <div class="set-context hidden"></div>        <div class="set-context-position hidden">0 of 0</div>        <div class="uploaded-date"></div>        <div class="view-count"><span class="view-count-label"></span></div>        <div class="hidden no-model quality-status" tabindex="-1">  <div class="quality-status-hd-badge"></div></div>        <div id="badges" class="badges hidden">          <span class="live-badge">Live</span>        </div>        <div class="ypc-preview">Preview: This video requires payment to watch.</div>      </div>    </div>  </div></div>  <div id="eureka-player-controls-container">    <div id="eureka-player-controls"></div>  </div>  <div id="pivot-post-play" class="hidden no-model pivot-post-play" tabindex="-1">  <div id="post-play-list" class="no-model no-content postplay-horizontal-list" tabindex="-1">  <div class="no-content-message">    <div class="text">No videos are available</div>  </div>  <div class="content"><div class="no-model carousel" tabindex="-1"></div><div class="hidden no-model pivot-sliding-highlighter" tabindex="-1">  <div class="select">Select</div></div></div></div></div>  <div id="bottom-half">    <div id="transport-controls" class="no-model transport-controls" tabindex="-1">  <div class="player-controls-widget">    <div id="player-controls" class="player-controls">      <div id="button-list" class=" list" data-model="{{buttonCollection}}" data-enable-sounds="false" tabindex="-1"><div class="icon-ellipsis button" tabindex="-1"><span class="label">more actions</span></div><div class="icon-home button" tabindex="-1"><span class="label">Go Home</span></div><div class="icon-player-prev button" tabindex="-1"><span class="label">skip backward</span></div><div class="icon-player-rew button" tabindex="-1"><span class="label">rewind</span></div><div class="selected icon-player-play toggle-button" tabindex="-1"><span>play</span></div><div class="icon-player-ff button" tabindex="-1"><span class="label">forward</span></div><div class="icon-player-next button" tabindex="-1"><span class="label">skip forward</span></div><div class="icon-player-closedcaptions toggle-button" tabindex="-1"><span>captions</span></div><div class="disabled spacer button" tabindex="-1"><span class="label"></span></div></div>    </div>    <div class="player-seekbar">      <div id="progress-bar" class=" progress-bar" tabindex="-1">  <div class="progress-bar-line">    <div class="progress-bar-background"></div>    <div class="progress-bar-loaded" style="width:0%"></div>    <div class="progress-bar-played" style="width:0%"></div>  </div>  <div class="progress-bar-playhead">    <div class="no-model cue-range-markers" tabindex="-1"></div>    <div class="progress-bar-disc" style="left:0%"></div>  </div></div>      <div id="player-time-elapsed" class="no-model elapsed-time" tabindex="-1">0:00</div>      <div class="player-time-total"></div>      <div class="live-indicator">Live</div>    </div>  </div></div>    <div class="hidden skip-ad-button" tabindex="-1">  <div class="label">    <span class="skip-button-text"></span>    <span class="skip-symbol icon-player-next"></span>    <span class="skip-symbol icon-settings-pair"></span>    <span class="skip-symbol icon-cast_on"></span>  </div></div>    <div class="hidden no-model advertisement-info" tabindex="-1">  <div class="advertisement-info-top">    <div class="youtube-hosted">      <div class="advertisement-avatar no-model image" data-image-url="{{advertiserAvatar}}" tabindex="-1"></div>      <div class="advertisement-info-details">        <div class="advertisement-title"></div>        <div class="advertisement-advertiser">          <span class="ad-badge">Ad</span>          <span class="remaining-duration"></span>          <span class="ad-point-separator">•</span>          <span class="ad-by">by </span>        </div>      </div>    </div>    <div class="third-party">      <span class="ad-badge">Ad</span>      <span class="ad-point-separator">•</span>      <span class="remaining-duration"></span>    </div>  </div></div>  <div class="no-model no-content pivot-shelf-list" tabindex="-1">  <div class="no-content-message">    <div class="text">No videos are available</div>  </div><div class=" carousel" tabindex="-1"></div></div></div></div>  <div id="call-to-cast" class="no-model call-to-cast" tabindex="-1">  <div class="THEME-cl end-screen multi-user left">    <h2 class="call-to-cast-text">Everyone's connected.</h2>    <h3 class="call-to-cast-text">Friends and family can <em>join in</em> and add videos to your TV Queue.</h3>    <div class="yt-logo"></div>  </div>  <div class="THEME-cl end-screen yt-mix right">    <h2 class="call-to-cast-text">Find the perfect mix.</h2>    <h3 class="call-to-cast-text">Play a nonstop <em>YouTube Mix</em> inspired by your favorite artist or video.</h3>    <div class="yt-logo"></div>  </div>  <div class="THEME-cl end-screen kids-promo left">    <h2 class="call-to-cast-text">      Have the YouTube Kids app?    </h2>    <h3 class="call-to-cast-text">      Get the family <em>together</em> and watch your favorite videos on the big screen.    </h3>    <div class="yt-kids-logo"></div>  </div>  <div class="THEME-cl end-screen tv-queue left">    <h2 class="call-to-cast-text">What's up next?</h2>    <h3 class="call-to-cast-text">Browse and add videos to your <em>TV Queue</em> while your current video keeps playing.</h3>    <div class="yt-logo"></div>  </div>  <div class="THEME-k end-screen kids-mother-goose left">    <h3 class="call-to-cast-text">Tap a video to watch on your TV.</h3>  </div>  <div class="THEME-k end-screen kids-rainbow left">    <h3 class="call-to-cast-text">Tap a video to watch on your TV.</h3>  </div>  <div class="THEME-k end-screen kids-sesame left">    <h3 class="call-to-cast-text">Tap a video to watch on your TV.</h3>  </div>  <div class="THEME-k end-screen kids-talking-tom left">    <h3 class="call-to-cast-text">Tap a video to watch on your TV.</h3>  </div>  <div class="THEME-k end-screen kids-wonderquest left">    <h3 class="call-to-cast-text">Tap a video to watch on your TV.</h3>  </div>  <div class="THEME-g end-screen gaming-heart left">    <h3 class="call-to-cast-text"></h3>  </div>  <div class="THEME-up end-screen loki left">    <h3 class="call-to-cast-text">Pick a video, yo.</h3>  </div>  <div class="THEME-m end-screen music-ready">    <div class="call-to-cast-logo"></div>    <h2 class="call-to-cast-text">Ready to play</h2>    <h3 class="call-to-cast-text">Choose some music in YouTube Music and play it here</h3>  </div>  <div class="THEME-m end-screen music-party">    <div class="call-to-cast-logo"></div>    <h3 class="call-to-cast-text">Need a soundtrack for your party?</h3>    <h3 class="call-to-cast-text">Stream endless video or audio stations to match the mood.</h3>    <div class="footer"></div>  </div></div>  <div id="browse-sets" class="no-background browse-sets" tabindex="-1">  <div id="browse-search-bar" class="no-model icon-button" tabindex="-1">  <span class="icon icon-search"></span>  <span class="label"></span></div>  <div class="youtube-logo-top">    <div class="youtube-logo icon-youtube-logo"></div>    <div class="youtube-unlimited-logo icon-youtube-unlimited-logo"></div>  </div>  <div id="browse-header" class="hidden no-model collapsed two-buttons browse-header" tabindex="-1">  <div class="browse-header-gradient"></div>  <div class="browse-header-metadata">    <div class="browse-header-avatar no-model image" data-image-url="{{avatarImageURL}}" tabindex="-1"></div>    <div class="title"></div>  </div>  <div class="browse-header-button-bar no-model component" tabindex="-1">    <div class="button browse-header-trailer no-model icon-button" tabindex="-1">  <span class="icon icon-player-play"></span>  <span class="label"></span></div>    <div class="button browse-header-subscribe no-model subscribe-button" tabindex="-1">  <span class="icon icon-logo-lozenge"></span>  <span class="label"></span></div>  </div></div>  <div id="platform-user-icon" class="hidden no-model image" data-image-url="{{platformUserIcon}}" tabindex="-1"></div>  <div class="browse-content">    <div id="shelves" class=" shelves" tabindex="-1">  <div class="title"></div>  <div class="no-content-message">    <div class="text">No videos are available</div>  </div><div class=" carousel" tabindex="-1"><div class="selected shelf" tabindex="-1" style="height: 24em; opacity: 1; z-index: 1; transform: translateX(0%) translateY(0%) scale(1) translateZ(0px); transition: none 0s;">  <div class="icon "></div>  <div class="title">    <span class="main">Screen Rant</span>    <span class="annotation">Recommended channel</span>  </div>  <div class="content-container"><div class=" horizontal-list" tabindex="-1">  <div class="no-content-message">    <div class="text">No videos are available</div>  </div>  <div class="content"><div class=" sliding-highlighter" tabindex="-1" style="transform: translateX(0%) translateZ(0px); transition: none 0s;">  <div class="select">Select</div></div><div class=" carousel" tabindex="-1"><div class="item tile selected video-tile" tabindex="-1" style="transform: translateX(0%) translateZ(0px); transition: none 0s;"><div class="no-model tile-focus-target" tabindex="-1"></div>  <div class="tile-top">    <div class="video-thumb no-model image" data-image-url="{{model.imageUrl}}" tabindex="-1" style="background-image: url(i.ytimg.com/vi/_TWbD3MKfMI/hqdefault.jpg);"></div>    <div class="voice-command">Cat Video</div>    <div class="decoration">      <div class="live-badge badge hidden"></div>      <div class="text-badge badge hidden"></div>      <div class="duration">7:30</div>    </div>  </div>  <div class="overlay hidden">    <div class="count"><div><strong></strong></div>videos</div>    <div class="icon"></div>  </div>  <div class="tile-bottom">    <div class="title">Cat Video</div>    <div class="details">      <div class="by">by Not a Cat</div>      <div class="views">16,573,823 views</div>      <div class="age">3 months ago</div>    </div>  </div></div><div class="item tile video-tile" tabindex="-1" style="transform: translateX(107%) translateZ(0px); transition: none 0s;"><div class="no-model tile-focus-target" tabindex="-1"></div>  <div class="tile-top">    <div class="video-thumb no-model image" data-image-url="{{model.imageUrl}}" tabindex="-1" style="background-image: url(i.ytimg.com/vi/vvFHyFW_jFc/hqdefault.jpg);"></div>    <div class="voice-command">Cat Video</div>    <div class="decoration">      <div class="live-badge badge hidden"></div>      <div class="text-badge badge hidden"></div>      <div class="duration">7:06</div>    </div>  </div>  <div class="overlay hidden">    <div class="count"><div><strong></strong></div>videos</div>    <div class="icon"></div>  </div>  <div class="tile-bottom">    <div class="title">Cat Video</div>    <div class="details">      <div class="by">by Not a Cat</div>      <div class="views">11,425,149 views</div>      <div class="age">3 months ago</div>    </div>  </div></div><div class="item tile video-tile" tabindex="-1" style="transform: translateX(214%) translateZ(0px); transition: none 0s;"><div class="no-model tile-focus-target" tabindex="-1"></div>  <div class="tile-top">    <div class="video-thumb no-model image" data-image-url="{{model.imageUrl}}" tabindex="-1" style="background-image: url(i.ytimg.com/vi/q14aPbvbvl8/hqdefault.jpg);"></div>    <div class="voice-command">Cat Video</div>    <div class="decoration">      <div class="live-badge badge hidden"></div>      <div class="text-badge badge hidden"></div>      <div class="duration">7:25</div>    </div>  </div>  <div class="overlay hidden">    <div class="count"><div><strong></strong></div>videos</div>    <div class="icon"></div>  </div>  <div class="tile-bottom">    <div class="title">Cat Video</div>    <div class="details">      <div class="by">by Not a Cat</div>      <div class="views">8,454,555 views</div>      <div class="age">5 months ago</div>    </div>  </div></div><div class="item tile video-tile" tabindex="-1" style="transform: translateX(321%) translateZ(0px); transition: none 0s;"><div class="no-model tile-focus-target" tabindex="-1"></div>  <div class="tile-top">    <div class="video-thumb no-model image" data-image-url="{{model.imageUrl}}" tabindex="-1" style="background-image: url(i.ytimg.com/vi/M9WlASe5ThU/hqdefault.jpg);"></div>    <div class="voice-command">Cat Video</div>    <div class="decoration">      <div class="live-badge badge hidden"></div>      <div class="text-badge badge hidden"></div>      <div class="duration">6:24</div>    </div>  </div>  <div class="overlay hidden">    <div class="count"><div><strong></strong></div>videos</div>    <div class="icon"></div>  </div>  <div class="tile-bottom">    <div class="title">Cat Video</div>    <div class="details">      <div class="by">by Not a Cat</div>      <div class="views">3,804,435 views</div>      <div class="age">2 months ago</div>    </div>  </div></div><div class="item tile video-tile" tabindex="-1" style="transform: translateX(428%) translateZ(0px); transition: none 0s;"><div class="no-model tile-focus-target" tabindex="-1"></div>  <div class="tile-top">    <div class="video-thumb no-model image" data-image-url="{{model.imageUrl}}" tabindex="-1" style="background-image: url(i.ytimg.com/vi/59_zMJRhFM0/hqdefault.jpg);"></div>    <div class="voice-command">Cat Video</div>    <div class="decoration">      <div class="live-badge badge hidden"></div>      <div class="text-badge badge hidden"></div>      <div class="duration">7:14</div>    </div>  </div>  <div class="overlay hidden">    <div class="count"><div><strong></strong></div>videos</div>    <div class="icon"></div>  </div>  <div class="tile-bottom">    <div class="title">Cat Video</div>    <div class="details">      <div class="by">by Not a Cat</div>      <div class="views">487,432 views</div>      <div class="age">3 weeks ago</div>    </div>  </div></div><div class="item tile video-tile" tabindex="-1" style="transform: translateX(535%) translateZ(0px); transition: none 0s;"><div class="no-model tile-focus-target" tabindex="-1"></div>  <div class="tile-top">    <div class="video-thumb no-model image" data-image-url="{{model.imageUrl}}" tabindex="-1" style="background-image: url(i.ytimg.com/vi/tnfPNYpi8rc/hqdefault.jpg);"></div>    <div class="voice-command">Cat Video</div>    <div class="decoration">      <div class="live-badge badge hidden"></div>      <div class="text-badge badge hidden"></div>      <div class="duration">9:22</div>    </div>  </div>  <div class="overlay hidden">    <div class="count"><div><strong></strong></div>videos</div>    <div class="icon"></div>  </div>  <div class="tile-bottom">    <div class="title">Cat Video</div>    <div class="details">      <div class="by">by Not a Cat</div>      <div class="views">3,156,426 views</div>      <div class="age">7 months ago</div>    </div>  </div></div><div class="item tile video-tile" tabindex="-1" style="transform: translateX(642%) translateZ(0px); transition: none 0s;"><div class="no-model tile-focus-target" tabindex="-1"></div>  <div class="tile-top">    <div class="video-thumb no-model image" data-image-url="{{model.imageUrl}}" tabindex="-1" style="background-image: url(i.ytimg.com/vi/F50yjSws9gQ/hqdefault.jpg);"></div>    <div class="voice-command">Cat Video</div>    <div class="decoration">      <div class="live-badge badge hidden"></div>      <div class="text-badge badge hidden"></div>      <div class="duration">5:27</div>    </div>  </div>  <div class="overlay hidden">    <div class="count"><div><strong></strong></div>videos</div>    <div class="icon"></div>  </div>  <div class="tile-bottom">    <div class="title">Cat Video</div>    <div class="details">      <div class="by">by Not a Cat</div>      <div class="views">1,108,695 views</div>      <div class="age">3 weeks ago</div>    </div>  </div></div></div></div></div></div></div><div class=" shelf" tabindex="-1" style="height: 24em; opacity: 1; z-index: 2; transform: translateX(0%) translateY(106%) scale(1) translateZ(0px); transition: none 0s;">  <div class="icon "></div>  <div class="title">    <span class="main">FailArmy</span>    <span class="annotation">Recommended channel</span>  </div>  <div class="content-container"><div class=" horizontal-list" tabindex="-1">  <div class="no-content-message">    <div class="text">No videos are available</div>  </div>  <div class="content"><div class=" sliding-highlighter" tabindex="-1" style="transform: translateX(0%) translateZ(0px); transition: none 0s;">  <div class="select">Select</div></div><div class=" carousel" tabindex="-1"><div class="item tile selected video-tile" tabindex="-1" style="transform: translateX(0%) translateZ(0px); transition: none 0s;"><div class="no-model tile-focus-target" tabindex="-1"></div>  <div class="tile-top">    <div class="video-thumb no-model image" data-image-url="{{model.imageUrl}}" tabindex="-1" style="background-image: url(i.ytimg.com/vi/rs-Ou-gjReQ/hqdefault.jpg);"></div>    <div class="voice-command">Cat Video</div>    <div class="decoration">      <div class="live-badge badge hidden"></div>      <div class="text-badge badge hidden"></div>      <div class="duration">7:01</div>    </div>  </div>  <div class="overlay hidden">    <div class="count"><div><strong></strong></div>videos</div>    <div class="icon"></div>  </div>  <div class="tile-bottom">    <div class="title">Cat Video</div>    <div class="details">      <div class="by">by Not a Cat</div>      <div class="views">4,792,124 views</div>      <div class="age">1 month ago</div>    </div>  </div></div><div class="item tile video-tile" tabindex="-1" style="transform: translateX(107%) translateZ(0px); transition: none 0s;"><div class="no-model tile-focus-target" tabindex="-1"></div>  <div class="tile-top">    <div class="video-thumb no-model image" data-image-url="{{model.imageUrl}}" tabindex="-1" style="background-image: url(i.ytimg.com/vi/x5ZxRObLLzE/hqdefault.jpg);"></div>    <div class="voice-command">Cat Video</div>    <div class="decoration">      <div class="live-badge badge hidden"></div>      <div class="text-badge badge hidden"></div>      <div class="duration">6:49</div>    </div>  </div>  <div class="overlay hidden">    <div class="count"><div><strong></strong></div>videos</div>    <div class="icon"></div>  </div>  <div class="tile-bottom">    <div class="title">Cat Video</div>    <div class="details">      <div class="by">by Not a Cat</div>      <div class="views">5,144,308 views</div>      <div class="age">2 weeks ago</div>    </div>  </div></div><div class="item tile video-tile" tabindex="-1" style="transform: translateX(214%) translateZ(0px); transition: none 0s;"><div class="no-model tile-focus-target" tabindex="-1"></div>  <div class="tile-top">    <div class="video-thumb no-model image" data-image-url="{{model.imageUrl}}" tabindex="-1" style="background-image: url(i.ytimg.com/vi/LZoilVdo7Hw/hqdefault.jpg);"></div>    <div class="voice-command">Cat Video</div>    <div class="decoration">      <div class="live-badge badge hidden"></div>      <div class="text-badge badge hidden"></div>      <div class="duration">7:06</div>    </div>  </div>  <div class="overlay hidden">    <div class="count"><div><strong></strong></div>videos</div>    <div class="icon"></div>  </div>  <div class="tile-bottom">    <div class="title">Cat Video</div>    <div class="details">      <div class="by">by Not a Cat</div>      <div class="views">3,485,342 views</div>      <div class="age">3 weeks ago</div>    </div>  </div></div><div class="item tile video-tile" tabindex="-1" style="transform: translateX(321%) translateZ(0px); transition: none 0s;"><div class="no-model tile-focus-target" tabindex="-1"></div>  <div class="tile-top">    <div class="video-thumb no-model image" data-image-url="{{model.imageUrl}}" tabindex="-1" style="background-image: url(i.ytimg.com/vi/0vEKItRNIb0/hqdefault.jpg);"></div>    <div class="voice-command">Cat Video</div>    <div class="decoration">      <div class="live-badge badge hidden"></div>      <div class="text-badge badge hidden"></div>      <div class="duration">6:54</div>    </div>  </div>  <div class="overlay hidden">    <div class="count"><div><strong></strong></div>videos</div>    <div class="icon"></div>  </div>  <div class="tile-bottom">    <div class="title">KidsCat Video</div>    <div class="details">      <div class="by">by Not a Cat</div>      <div class="views">3,469,457 views</div>      <div class="age">3 weeks ago</div>    </div>  </div></div><div class="item tile video-tile" tabindex="-1" style="transform: translateX(428%) translateZ(0px); transition: none 0s;"><div class="no-model tile-focus-target" tabindex="-1"></div>  <div class="tile-top">    <div class="video-thumb no-model image" data-image-url="{{model.imageUrl}}" tabindex="-1" style="background-image: url(i.ytimg.com/vi/8VstEBbwhnc/hqdefault.jpg);"></div>    <div class="voice-command">Cat Video</div>    <div class="decoration">      <div class="live-badge badge hidden"></div>      <div class="text-badge badge hidden"></div>      <div class="duration">6:52</div>    </div>  </div>  <div class="overlay hidden">    <div class="count"><div><strong></strong></div>videos</div>    <div class="icon"></div>  </div>  <div class="tile-bottom">    <div class="title">Cat Video</div>    <div class="details">      <div class="by">by Not a Cat</div>      <div class="views">4,334,756 views</div>      <div class="age">1 week ago</div>    </div>  </div></div><div class="item tile video-tile" tabindex="-1" style="transform: translateX(535%) translateZ(0px); transition: none 0s;"><div class="no-model tile-focus-target" tabindex="-1"></div>  <div class="tile-top">    <div class="video-thumb no-model image" data-image-url="{{model.imageUrl}}" tabindex="-1" style="background-image: url(i.ytimg.com/vi/qkKRkfZYhlE/hqdefault.jpg);"></div>    <div class="voice-command">Cat Video</div>    <div class="decoration">      <div class="live-badge badge hidden"></div>      <div class="text-badge badge hidden"></div>      <div class="duration">6:37</div>    </div>  </div>  <div class="overlay hidden">    <div class="count"><div><strong></strong></div>videos</div>    <div class="icon"></div>  </div>  <div class="tile-bottom">    <div class="title">Cat Video</div>    <div class="details">      <div class="by">by Not a Cat</div>      <div class="views">3,053,167 views</div>      <div class="age">2 weeks ago</div>    </div>  </div></div><div class="item tile video-tile" tabindex="-1" style="transform: translateX(642%) translateZ(0px); transition: none 0s;"><div class="no-model tile-focus-target" tabindex="-1"></div>  <div class="tile-top">    <div class="video-thumb no-model image" data-image-url="{{model.imageUrl}}" tabindex="-1" style="background-image: url(i.ytimg.com/vi/MODTYlzxY9U/hqdefault.jpg);"></div>    <div class="voice-command">Cat Video</div>    <div class="decoration">      <div class="live-badge badge hidden"></div>      <div class="text-badge badge hidden"></div>      <div class="duration">6:44</div>    </div>  </div>  <div class="overlay hidden">    <div class="count"><div><strong></strong></div>videos</div>    <div class="icon"></div>  </div>  <div class="tile-bottom">    <div class="title">Cat Video</div>    <div class="details">      <div class="by">by Not a Cat</div>      <div class="views">2,734,235 views</div>      <div class="age">1 week ago</div>    </div>  </div></div></div></div></div></div></div><div class=" shelf" tabindex="-1" style="height: 24em; opacity: 1; z-index: 3; transform: translateX(0%) translateY(212%) scale(1) translateZ(0px); transition: none 0s;">  <div class="icon "></div>  <div class="title">    <span class="main">Cyprien</span>    <span class="annotation">Recommended channel</span>  </div>  <div class="content-container"><div class=" horizontal-list" tabindex="-1">  <div class="no-content-message">    <div class="text">No videos are available</div>  </div>  <div class="content"><div class=" sliding-highlighter" tabindex="-1" style="transform: translateX(0%) translateZ(0px); transition: none 0s;">  <div class="select">Select</div></div><div class=" carousel" tabindex="-1"><div class="item tile selected video-tile" tabindex="-1" style="transform: translateX(0%) translateZ(0px); transition: none 0s;"><div class="no-model tile-focus-target" tabindex="-1"></div>  <div class="tile-top">    <div class="video-thumb no-model image" data-image-url="{{model.imageUrl}}" tabindex="-1" style="background-image: url(i.ytimg.com/vi/D-YPnDvTCmI/hqdefault.jpg);"></div>    <div class="voice-command">Cat Video</div>    <div class="decoration">      <div class="live-badge badge hidden"></div>      <div class="text-badge badge hidden"></div>      <div class="duration">5:02</div>    </div>  </div>  <div class="overlay hidden">    <div class="count"><div><strong></strong></div>videos</div>    <div class="icon"></div>  </div>  <div class="tile-bottom">    <div class="title">Cat Video</div>    <div class="details">      <div class="by">byby Not a Cat</div>      <div class="views">9,832,315 views</div>      <div class="age">1 month ago</div>    </div>  </div></div><div class="item tile video-tile" tabindex="-1" style="transform: translateX(107%) translateZ(0px); transition: none 0s;"><div class="no-model tile-focus-target" tabindex="-1"></div>  <div class="tile-top">    <div class="video-thumb no-model image" data-image-url="{{model.imageUrl}}" tabindex="-1" style="background-image: url(i.ytimg.com/vi/wNRUzu4fTgw/hqdefault.jpg);"></div>    <div class="voice-command">Cat Video</div>    <div class="decoration">      <div class="live-badge badge hidden"></div>      <div class="text-badge badge hidden"></div>      <div class="duration">11:44</div>    </div>  </div>  <div class="overlay hidden">    <div class="count"><div><strong></strong></div>videos</div>    <div class="icon"></div>  </div>  <div class="tile-bottom">    <div class="title">Cat Video</div>    <div class="details">      <div class="by">by Not a Cat</div>      <div class="views">15,035,125 views</div>      <div class="age">8 months ago</div>    </div>  </div></div><div class="item tile video-tile" tabindex="-1" style="transform: translateX(214%) translateZ(0px); transition: none 0s;"><div class="no-model tile-focus-target" tabindex="-1"></div>  <div class="tile-top">    <div class="video-thumb no-model image" data-image-url="{{model.imageUrl}}" tabindex="-1" style="background-image: url(i.ytimg.com/vi/GwzBLYGRj6c/hqdefault.jpg);"></div>    <div class="voice-command">Cat Video</div>    <div class="decoration">      <div class="live-badge badge hidden"></div>      <div class="text-badge badge hidden"></div>      <div class="duration">6:32</div>    </div>  </div>  <div class="overlay hidden">    <div class="count"><div><strong></strong></div>videos</div>    <div class="icon"></div>  </div>  <div class="tile-bottom">    <div class="title">Cat Video</div>    <div class="details">      <div class="by">by Not a Cat</div>      <div class="views">10,769,981 views</div>      <div class="age">4 months ago</div>    </div>  </div></div><div class="item tile video-tile" tabindex="-1" style="transform: translateX(321%) translateZ(0px); transition: none 0s;"><div class="no-model tile-focus-target" tabindex="-1"></div>  <div class="tile-top">    <div class="video-thumb no-model image" data-image-url="{{model.imageUrl}}" tabindex="-1" style="background-image: url(i.ytimg.com/vi/rtzlT78OEks/hqdefault.jpg);"></div>    <div class="voice-command">Cat Video</div>    <div class="decoration">      <div class="live-badge badge hidden"></div>      <div class="text-badge badge hidden"></div>      <div class="duration">6:32</div>    </div>  </div>  <div class="overlay hidden">    <div class="count"><div><strong></strong></div>videos</div>    <div class="icon"></div>  </div>  <div class="tile-bottom">    <div class="title">Cat Video</div>    <div class="details">      <div class="by">by Not a Cat</div>      <div class="views">12,174,818 views</div>      <div class="age">4 months ago</div>    </div>  </div></div><div class="item tile video-tile" tabindex="-1" style="transform: translateX(428%) translateZ(0px); transition: none 0s;"><div class="no-model tile-focus-target" tabindex="-1"></div>  <div class="tile-top">    <div class="video-thumb no-model image" data-image-url="{{model.imageUrl}}" tabindex="-1" style="background-image: url(i.ytimg.com/vi/eOOyxSMI0aE/hqdefault.jpg);"></div>    <div class="voice-command">Cat Video</div>    <div class="decoration">      <div class="live-badge badge hidden"></div>      <div class="text-badge badge hidden"></div>      <div class="duration">6:32</div>    </div>  </div>  <div class="overlay hidden">    <div class="count"><div><strong></strong></div>videos</div>    <div class="icon"></div>  </div>  <div class="tile-bottom">    <div class="title">Cat Video</div>    <div class="details">      <div class="by">by Not a Cat</div>      <div class="views">11,402,149 views</div>      <div class="age">5 months ago</div>    </div>  </div></div><div class="item tile video-tile" tabindex="-1" style="transform: translateX(535%) translateZ(0px); transition: none 0s;"><div class="no-model tile-focus-target" tabindex="-1"></div>  <div class="tile-top">    <div class="video-thumb no-model image" data-image-url="{{model.imageUrl}}" tabindex="-1" style="background-image: url(i.ytimg.com/vi/RL7grUEo960/hqdefault.jpg);"></div>    <div class="voice-command">Cat Video</div>    <div class="decoration">      <div class="live-badge badge hidden"></div>      <div class="text-badge badge hidden"></div>      <div class="duration">4:50</div>    </div>  </div>  <div class="overlay hidden">    <div class="count"><div><strong></strong></div>videos</div>    <div class="icon"></div>  </div>  <div class="tile-bottom">    <div class="title">Cat Video</div>    <div class="details">      <div class="by">by Not a Cat</div>      <div class="views">27,077,657 views</div>      <div class="age">1 year ago</div>    </div>  </div></div><div class="item tile video-tile" tabindex="-1" style="transform: translateX(642%) translateZ(0px); transition: none 0s;"><div class="no-model tile-focus-target" tabindex="-1"></div>  <div class="tile-top">    <div class="video-thumb no-model image" data-image-url="{{model.imageUrl}}" tabindex="-1" style="background-image: url(i.ytimg.com/vi/2A07xMhKC6g/hqdefault.jpg);"></div>    <div class="voice-command">Cat Video</div>    <div class="decoration">      <div class="live-badge badge hidden"></div>      <div class="text-badge badge hidden"></div>      <div class="duration">5:55</div>    </div>  </div>  <div class="overlay hidden">    <div class="count"><div><strong></strong></div>videos</div>    <div class="icon"></div>  </div>  <div class="tile-bottom">    <div class="title">Cat Video</div>    <div class="details">      <div class="by">by Not a Cat</div>      <div class="views">11,230,070 views</div>      <div class="age">6 months ago</div>    </div>  </div></div></div></div></div></div></div><div class=" shelf" tabindex="-1" style="height: 24em; opacity: 1; z-index: 3; transform: translateX(0%) translateY(212%) scale(1) translateZ(0px); transition: none 0s;">  <div class="icon "></div>  <div class="title">    <span class="main">Recently Uploaded</span>    <span class="annotation">Recommended videos</span>  </div>  <div class="content-container"><div class=" horizontal-list" tabindex="-1">  <div class="no-content-message">    <div class="text">No videos are available</div>  </div>  <div class="content"><div class=" sliding-highlighter" tabindex="-1" style="transform: translateX(0%) translateZ(0px); transition: none 0s;">  <div class="select">Select</div></div><div class=" carousel" tabindex="-1"><div class="item tile selected video-tile" tabindex="-1" style="transform: translateX(0%) translateZ(0px); transition: none 0s;"><div class="no-model tile-focus-target" tabindex="-1"></div>  <div class="tile-top">    <div class="video-thumb no-model image" data-image-url="{{model.imageUrl}}" tabindex="-1" style="background-image: url(i.ytimg.com/vi/Z31LDqbhN8U/hqdefault.jpg);"></div>    <div class="voice-command">Cat Video</div>    <div class="decoration">      <div class="live-badge badge hidden"></div>      <div class="text-badge badge hidden"></div>      <div class="duration">10:23</div>    </div>  </div>  <div class="overlay hidden">    <div class="count"><div><strong></strong></div>videos</div>    <div class="icon"></div>  </div>  <div class="tile-bottom">    <div class="title">Cat Video</div>    <div class="details">      <div class="by">by Not a Cat</div>      <div class="views">23,123 views</div>      <div class="age">5 days ago</div>    </div>  </div></div><div class="item tile video-tile" tabindex="-1" style="transform: translateX(107%) translateZ(0px); transition: none 0s;"><div class="no-model tile-focus-target" tabindex="-1"></div>  <div class="tile-top">    <div class="video-thumb no-model image" data-image-url="{{model.imageUrl}}" tabindex="-1" style="background-image: url(i.ytimg.com/vi/zzmrTdAtEu4/hqdefault.jpg);"></div>    <div class="voice-command">Cat Video</div>    <div class="decoration">      <div class="live-badge badge hidden"></div>      <div class="text-badge badge hidden"></div>      <div class="duration">14:09</div>    </div>  </div>  <div class="overlay hidden">    <div class="count"><div><strong></strong></div>videos</div>    <div class="icon"></div>  </div>  <div class="tile-bottom">    <div class="title">Cat Video</div>    <div class="details">      <div class="by">by Not a Cat</div>      <div class="views">23,595 views</div>      <div class="age">3 days ago</div>    </div>  </div></div><div class="item tile video-tile" tabindex="-1" style="transform: translateX(214%) translateZ(0px); transition: none 0s;"><div class="no-model tile-focus-target" tabindex="-1"></div>  <div class="tile-top">    <div class="video-thumb no-model image" data-image-url="{{model.imageUrl}}" tabindex="-1" style="background-image: url(i.ytimg.com/vi/1dXVzBU5p-Q/hqdefault.jpg);"></div>    <div class="voice-command">Cat Video</div>    <div class="decoration">      <div class="live-badge badge hidden"></div>      <div class="text-badge badge hidden"></div>      <div class="duration">14:26</div>    </div>  </div>  <div class="overlay hidden">    <div class="count"><div><strong></strong></div>videos</div>    <div class="icon"></div>  </div>  <div class="tile-bottom">    <div class="title">Cat Video</div>    <div class="details">      <div class="by">by Not a Cat</div>      <div class="views">53,711 views</div>      <div class="age">6 days ago</div>    </div>  </div></div><div class="item tile video-tile" tabindex="-1" style="transform: translateX(321%) translateZ(0px); transition: none 0s;"><div class="no-model tile-focus-target" tabindex="-1"></div>  <div class="tile-top">    <div class="video-thumb no-model image" data-image-url="{{model.imageUrl}}" tabindex="-1" style="background-image: url(i.ytimg.com/vi/spC883rn6zk/hqdefault.jpg);"></div>    <div class="voice-command">Cat Video</div>    <div class="decoration">      <div class="live-badge badge hidden"></div>      <div class="text-badge badge hidden"></div>      <div class="duration">17:41</div>    </div>  </div>  <div class="overlay hidden">    <div class="count"><div><strong></strong></div>videos</div>    <div class="icon"></div>  </div>  <div class="tile-bottom">    <div class="title">Cat Video</div>    <div class="details">      <div class="by">by Not a Cat</div>      <div class="views">62,903 views</div>      <div class="age">5 days ago</div>    </div>  </div></div><div class="item tile video-tile" tabindex="-1" style="transform: translateX(428%) translateZ(0px); transition: none 0s;"><div class="no-model tile-focus-target" tabindex="-1"></div>  <div class="tile-top">    <div class="video-thumb no-model image" data-image-url="{{model.imageUrl}}" tabindex="-1" style="background-image: url(i.ytimg.com/vi/XilhAJZ2qxs/hqdefault.jpg);"></div>    <div class="voice-command">Cat Video</div>    <div class="decoration">      <div class="live-badge badge hidden"></div>      <div class="text-badge badge hidden"></div>      <div class="duration">11:46</div>    </div>  </div>  <div class="overlay hidden">    <div class="count"><div><strong></strong></div>videos</div>    <div class="icon"></div>  </div>  <div class="tile-bottom">    <div class="title">Cat Video</div>    <div class="details">      <div class="by">by Not a Cat</div>      <div class="views">37,470 views</div>      <div class="age">2 days ago</div>    </div>  </div></div><div class="item tile video-tile" tabindex="-1" style="transform: translateX(535%) translateZ(0px); transition: none 0s;"><div class="no-model tile-focus-target" tabindex="-1"></div>  <div class="tile-top">    <div class="video-thumb no-model image" data-image-url="{{model.imageUrl}}" tabindex="-1" style="background-image: url(i.ytimg.com/vi/tCehxI5a1y0/hqdefault.jpg);"></div>    <div class="voice-command">Cat Video</div>    <div class="decoration">      <div class="live-badge badge hidden"></div>      <div class="text-badge badge hidden"></div>      <div class="duration">10:28</div>    </div>  </div>  <div class="overlay hidden">    <div class="count"><div><strong></strong></div>videos</div>    <div class="icon"></div>  </div>  <div class="tile-bottom">    <div class="title">Cat Video</div>    <div class="details">      <div class="by">by Not a Cat</div>      <div class="views">9,132 views</div>      <div class="age">2 days ago</div>    </div>  </div></div><div class="item tile video-tile" tabindex="-1" style="transform: translateX(642%) translateZ(0px); transition: none 0s;"><div class="no-model tile-focus-target" tabindex="-1"></div>  <div class="tile-top">    <div class="video-thumb no-model image" data-image-url="{{model.imageUrl}}" tabindex="-1" style="background-image: url(i.ytimg.com/vi/qrZcKwcVwk8/hqdefault.jpg);"></div>    <div class="voice-command">Cat Video</div>    <div class="decoration">      <div class="live-badge badge hidden"></div>      <div class="text-badge badge hidden"></div>      <div class="duration">8:43</div>    </div>  </div>  <div class="overlay hidden">    <div class="count"><div><strong></strong></div>videos</div>    <div class="icon"></div>  </div>  <div class="tile-bottom">    <div class="title">Cat Video</div>    <div class="details">      <div class="by">by Not a Cat</div>      <div class="views">23,568 views</div>      <div class="age">3 days ago</div>    </div>  </div></div></div></div></div></div></div></div></div>  </div></div>  <div id="settings-placeholder"></div>  <div id="search" class="hidden no-model search" tabindex="-1">  <div class="youtube-logo-top">    <div class="youtube-logo icon-youtube-logo"></div>    <div class="youtube-unlimited-logo icon-youtube-unlimited-logo"></div>  </div>  <div class="controls">    <div id="text-box-background">      <div id="search-text-box">        <span class="icon-search"></span>        <input id="search-input" autocomplete="off" class="no-model component" title="search" placeholder="Search..." tabindex="-1">        <span id="search-query" class="hidden"></span>      </div>    </div>    <div id="search-text-entry">      <div class="suggestions-container">        <div id="keyboard-icon" class="icon-search-keyboard"></div>        <div id="search-suggestions" class=" suggestions" tabindex="-1">  <div id="suggest-list" class=" list" data-model="{{model.suggestions}}" data-catch-mouse-move="{{catchMouseMove}}" data-scroll-on-focus="true" tabindex="-1"></div></div>      </div>      <div id="search-keyboard" class=" keyboard" tabindex="-1">  <div id="transliteration-container">    <div id="transliteration" class="no-model transliteration" tabindex="-1">  <div class=" list" data-model="{{transliterations}}" tabindex="-1">  </div></div>  </div>  <div id="keyboard-grid" class=" grid" tabindex="-1">  <div class="selected list" data-catch-mouse-move="{{catchRowMouseMove}}" data-item-factory="{{itemFactory}}" data-item-name="{{itemName}}" data-is-vertical="false" data-loop="{{loopRows}}" data-consume-events="{{consumeEvents}}" data-rate-limit="{{rateLimit}}" tabindex="-1"><div class="selected button" tabindex="-1"><span class="label">a</span></div><div class=" button" tabindex="-1"><span class="label">b</span></div><div class=" button" tabindex="-1"><span class="label">c</span></div><div class=" button" tabindex="-1"><span class="label">d</span></div><div class=" button" tabindex="-1"><span class="label">e</span></div><div class=" button" tabindex="-1"><span class="label">f</span></div><div class=" button" tabindex="-1"><span class="label">g</span></div><div class="icon-key-delete button" tabindex="-1"><span class="label"></span></div></div><div class=" list" data-catch-mouse-move="{{catchRowMouseMove}}" data-item-factory="{{itemFactory}}" data-item-name="{{itemName}}" data-is-vertical="false" data-loop="{{loopRows}}" data-consume-events="{{consumeEvents}}" data-rate-limit="{{rateLimit}}" tabindex="-1"><div class="selected button" tabindex="-1"><span class="label">h</span></div><div class=" button" tabindex="-1"><span class="label">i</span></div><div class=" button" tabindex="-1"><span class="label">j</span></div><div class=" button" tabindex="-1"><span class="label">k</span></div><div class=" button" tabindex="-1"><span class="label">l</span></div><div class=" button" tabindex="-1"><span class="label">m</span></div><div class=" button" tabindex="-1"><span class="label">n</span></div><div class="clear-query-tile button" tabindex="-1"><span class="label">Clear</span></div></div><div class=" list" data-catch-mouse-move="{{catchRowMouseMove}}" data-item-factory="{{itemFactory}}" data-item-name="{{itemName}}" data-is-vertical="false" data-loop="{{loopRows}}" data-consume-events="{{consumeEvents}}" data-rate-limit="{{rateLimit}}" tabindex="-1"><div class="selected button" tabindex="-1"><span class="label">o</span></div><div class=" button" tabindex="-1"><span class="label">p</span></div><div class=" button" tabindex="-1"><span class="label">q</span></div><div class=" button" tabindex="-1"><span class="label">r</span></div><div class=" button" tabindex="-1"><span class="label">s</span></div><div class=" button" tabindex="-1"><span class="label">t</span></div><div class=" button" tabindex="-1"><span class="label">u</span></div><div class="numbers-toggle-tile button" tabindex="-1"><span class="label">&amp;123</span></div></div><div class=" list" data-catch-mouse-move="{{catchRowMouseMove}}" data-item-factory="{{itemFactory}}" data-item-name="{{itemName}}" data-is-vertical="false" data-loop="{{loopRows}}" data-consume-events="{{consumeEvents}}" data-rate-limit="{{rateLimit}}" tabindex="-1"><div class="selected button" tabindex="-1"><span class="label">v</span></div><div class=" button" tabindex="-1"><span class="label">w</span></div><div class=" button" tabindex="-1"><span class="label">x</span></div><div class=" button" tabindex="-1"><span class="label">y</span></div><div class=" button" tabindex="-1"><span class="label">z</span></div><div class=" button" tabindex="-1"><span class="label">-</span></div><div class=" button" tabindex="-1"><span class="label">'</span></div></div></div>  <div id="letter-suggest" class=" list" data-is-vertical="true" data-catch-mouse-move="true" data-model="{{letterSuggestions}}" tabindex="-1"></div>  <div>    <div id="keyboard-spacebar" class="icon-key-space button" tabindex="-1"><span class="label"></span></div>  </div></div>      <div class="search-hint">        Voice search is not supported.      </div>    </div>  </div>  <div class="search-pairing">    <div class="search-img"></div>    <div class="search-message">      <div class="title">Search Faster</div>      <div class="pairing no-model dial-upsell pairing-dialog" id="pairing" tabindex="-1">  <div class="dialog-large-icon icon-settings-pair"></div>  <div class="connection-instructions icon-dialog-content">    <div class="dial-upsell-content">      Connect one or more devices to the same Wi-Fi network and select <div class="cast-icon">&nbsp;</div>    </div>    <div class="manual-connect-content">      <div class="connection-steps">        <div class="with-dial-connect-step1">        <div class="step1">Or go to</div>        <div class="pair-url">youtube.com/pair</div>        </div>        <div class="no-dial-connect-step1">        <div class="step1">Go to</div>        <div class="pair-url">youtube.com/pair</div>        </div>        <div class="no-dial-connect-step2">        <div class="step2">and enter</div>        <div class="pair-code">Loading...</div>        </div>      </div>    </div>  </div></div>    </div>  </div>  <div id="results-placeholder"></div></div>  <div id="pointer-overlay" class="-overlay hidden"></div>  <div id="guide" class="focused guide" tabindex="-1">  <div id="user-info-background">    <div class="user-info-container">      <div id="guide-user-avatar" style="background-image: url()"></div>      <div class="guide-user-text">        <div class="guide-user-name"></div>        <div class="guide-user-unlimited"></div>      </div>    </div>  </div>  <div class="collapsed-guide"></div>  <div class="guide-carousel-background"></div>  <div class="collapsed-guide-icons">    <div class="collapsed-guide-icon icon-guide-what-to-watch"></div>    <div class="collapsed-guide-icon icon-guide-my-subs"></div>    <div class="collapsed-guide-icon icon-popular"></div>    <div class="collapsed-guide-icon icon-music"></div>    <div class="collapsed-guide-icon icon-ellipsis"></div>  </div>  <div id="error-message">Sorry, the rest of this Guide isn’t available right now.</div><div class=" sliding-highlighter" tabindex="-1" style="transform: translateY(200%) translateZ(0px); transition: opacity 200ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 200ms cubic-bezier(0.4, 0, 0.2, 1);">  <div class="select">Select</div></div><div class="focused carousel" tabindex="-1"><div class=" guide-button" tabindex="-1" style="transform: translateY(0%) translateZ(0px); transition: none 0s;">  <div class="guide-button-icon icon-people">    <div class="no-model image" data-image-url="{{model.iconUrl}}" tabindex="-1"></div>  </div>  <div class="guide-button-title">Sign In</div></div><div class=" guide-button" tabindex="-1" style="transform: translateY(100%) translateZ(0px); transition: none 0s;">  <div class="guide-button-icon icon-search">    <div class="no-model image" data-image-url="{{model.iconUrl}}" tabindex="-1"></div>  </div>  <div class="guide-button-title">Search</div></div><div class="focused selected guide-button" tabindex="-1" style="transform: translateY(200%) translateZ(0px); transition: none 0s;">  <div class="guide-button-icon icon-guide-what-to-watch">    <div class="no-model image" data-image-url="{{model.iconUrl}}" tabindex="-1"></div>  </div>  <div class="guide-button-title">Home</div></div><div class=" guide-button" tabindex="-1" style="transform: translateY(300%) translateZ(0px); transition: none 0s;">  <div class="guide-button-icon icon-player-settings">    <div class="no-model image" data-image-url="{{model.iconUrl}}" tabindex="-1"></div>  </div>  <div class="guide-button-title">Settings</div></div><div class="disabled guide-button" tabindex="-1" style="transform: translateY(400%) translateZ(0px); transition: none 0s;">  <div class="guide-button-icon ">    <div class="no-model image" data-image-url="{{model.iconUrl}}" tabindex="-1"></div>  </div>  <div class="guide-button-title">Best of YouTube</div></div><div class="has-image guide-button" tabindex="-1" style="transform: translateY(500%) translateZ(0px); transition: none 0s;">  <div class="guide-button-icon ">    <div class="no-model image" data-image-url="{{model.iconUrl}}" tabindex="-1" style="background-image: url(i.ytimg.com/i/F0pVplsI8R5kcAqgtoRqoA/1.jpg);"></div>  </div>  <div class="guide-button-title">Popular on YouTube</div></div><div class="has-image guide-button" tabindex="-1" style="transform: translateY(600%) translateZ(0px); transition: none 0s;">  <div class="guide-button-icon ">    <div class="no-model image" data-image-url="{{model.iconUrl}}" tabindex="-1" style="background-image: url(i.ytimg.com/i/-9-kyTW8ZkZNDHQJ6FgpwQ/1.jpg);"></div>  </div>  <div class="guide-button-title">Music</div></div><div class="has-image guide-button" tabindex="-1" style="transform: translateY(700%) translateZ(0px); transition: none 0s;">  <div class="guide-button-icon ">    <div class="no-model image" data-image-url="{{model.iconUrl}}" tabindex="-1" style="background-image: url(i.ytimg.com/i/Egdi0XIXXZ-qJOFPf4JSKw/1.jpg);"></div>  </div>  <div class="guide-button-title">Sports</div></div><div class="has-image guide-button" tabindex="-1" style="transform: translateY(800%) translateZ(0px); transition: none 0s;">  <div class="guide-button-icon ">    <div class="no-model image" data-image-url="{{model.iconUrl}}" tabindex="-1" style="background-image: url(i.ytimg.com/i/OpNcN46UbXVtpKMrmU4Abg/1.jpg);"></div>  </div>  <div class="guide-button-title">Gaming</div></div><div class="has-image guide-button" tabindex="-1" style="transform: translateY(900%) translateZ(0px); transition: none 0s;">  <div class="guide-button-icon ">    <div class="no-model image" data-image-url="{{model.iconUrl}}" tabindex="-1" style="background-image: url(i.ytimg.com/i/YfdidRxbB8Qhf0Nx7ioOYw/1.jpg);"></div>  </div>  <div class="guide-button-title">News</div></div><div class="has-image guide-button" tabindex="-1" style="transform: translateY(1000%) translateZ(0px); transition: none 0s;">  <div class="guide-button-icon ">    <div class="no-model image" data-image-url="{{model.iconUrl}}" tabindex="-1" style="background-image: url(i.ytimg.com/i/4R8DWoMoI7CAwX8_LjQHig/1.jpg);"></div>  </div>  <div class="guide-button-title">Live</div></div><div class="has-image guide-button" tabindex="-1" style="transform: translateY(1100%) translateZ(0px); transition: none 0s;">  <div class="guide-button-icon ">    <div class="no-model image" data-image-url="{{model.iconUrl}}" tabindex="-1" style="background-image: url(yt3.ggpht.com/-dL2jeHlm2Ok/AAAAAAAAAAI/AAAAAAAAAAA/ZCMMkRj-hrw/s88-c-k-no/photo.jpg);"></div>  </div>  <div class="guide-button-title">Spotlight</div></div><div class="has-image guide-button" tabindex="-1" style="transform: translateY(1200%) translateZ(0px); transition: none 0s;">  <div class="guide-button-icon ">    <div class="no-model image" data-image-url="{{model.iconUrl}}" tabindex="-1" style="background-image: url(i.ytimg.com/i/xAgnFbkxldX6YUEvdcNjnA/1.jpg);"></div>  </div>  <div class="guide-button-title">Film &amp; Animation</div></div><div class="has-image guide-button" tabindex="-1" style="transform: translateY(1300%) translateZ(0px); transition: none 0s;">  <div class="guide-button-icon ">    <div class="no-model image" data-image-url="{{model.iconUrl}}" tabindex="-1" style="background-image: url(i.ytimg.com/i/i-g4cjqGV7jvU8aeSuj0jQ/1.jpg);"></div>  </div>  <div class="guide-button-title">Entertainment</div></div></div></div>  <div class="no-model application-message" tabindex="-1"></div>  <div id="spinner" class="hidden no-model spinner" tabindex="-1">  <div class="fallback-loading-indicator">LOADING...</div>  <div class="loading-indicator">    <div class="dot" id="dot1"></div>    <div class="dot" id="dot2"></div>    <div class="dot" id="dot3"></div>    <div class="dot" id="dot4"></div>    <div class="dot" id="dot5"></div>    <div class="dot" id="dot6"></div>    <div class="dot" id="dot7"></div>    <div class="dot" id="dot8"></div>  </div></div>  <h1 class=" debug-watermark" tabindex="-1"></h1>  <div class="browse-sets no-model dialog" id="dialog" tabindex="-1">  <div id="dialog-wrapper">    <div class="dialog-icon"></div> <!-- Only used for flat UI -->    <div class="dialog-contents">      <div class="header">        <div class="title"></div>      </div>      <div class="no-model component" id="dialog-view" tabindex="-1"></div>      <div class="buttons">        <div id="dialog-cancel-button" class="no-model button" tabindex="-1"><span class="label"></span></div>        <div id="dialog-ok-button" class="no-model button" tabindex="-1"><span class="label"></span></div>      </div>    </div>  </div></div>  <div id="voice-footer-placeholder"></div>  <div id="legend" class="close-guide search legend" tabindex="-1">  <div class="more no-model legend-item" tabindex="-1">  <span class="icon icon-player-more"></span>  <span class="title">Show More</span></div>  <div class="back no-model legend-item" tabindex="-1">  <span class="icon "></span>  <span class="title">Go Back</span></div>  <div class="exit no-model legend-item" tabindex="-1">  <span class="icon "></span>  <span class="title">Exit</span></div>  <div class="reversed-back no-model legend-item" tabindex="-1">  <span class="icon "></span>  <span class="title">Go Back</span></div>  <div class="search no-model legend-item" tabindex="-1">  <span class="icon "></span>  <span class="title">Search</span></div>  <div class="space no-model legend-item" tabindex="-1">  <span class="icon "></span>  <span class="title">Space</span></div>  <div class="home no-model legend-item" tabindex="-1">  <span class="icon "></span>  <span class="title">Go Home</span></div>  <div class="modify no-model legend-item" tabindex="-1">  <span class="icon "></span>  <span class="title">Modify</span></div>  <div class="delete no-model legend-item" tabindex="-1">  <span class="icon "></span>  <span class="title">Delete</span></div>  <div class="guide no-model legend-item" tabindex="-1">  <span class="icon "></span>  <span class="title">Open Guide</span></div>  <div class="close-guide no-model legend-item" tabindex="-1">  <span class="icon "></span>  <span class="title">Close Guide</span></div></div>  <div class=" toaster" tabindex="-1">  <div class=" list" data-model="{{model}}" tabindex="-1"></div></div>  <div class="no-model engagement-indicator" tabindex="-1"></div>  <div class=" hidden" id="snap-controls" data-is-hidden="true"></div>  <div id="context-menu-placeholder" class="hidden"></div>  <div class="hidden no-model fps" tabindex="-1"></div></div></div>
-    
-    
-  
-
-<div id="window-resizer-tooltip"><a href="#" title="Edit settings"></a><span class="tooltipTitle">Window size: </span><span class="tooltipWidth" id="winWidth"></span> x <span class="tooltipHeight" id="winHeight"></span><br><span class="tooltipTitle">Viewport size: </span><span class="tooltipWidth" id="vpWidth"></span> x <span class="tooltipHeight" id="vpHeight"></span></div></body></html>
diff --git a/src/cobalt/layout_tests/testdata/benchmarks/yt3.ggpht.com/-dL2jeHlm2Ok/AAAAAAAAAAI/AAAAAAAAAAA/ZCMMkRj-hrw/s88-c-k-no/photo.jpg b/src/cobalt/layout_tests/testdata/benchmarks/yt3.ggpht.com/-dL2jeHlm2Ok/AAAAAAAAAAI/AAAAAAAAAAA/ZCMMkRj-hrw/s88-c-k-no/photo.jpg
deleted file mode 100644
index 56b34fe..0000000
--- a/src/cobalt/layout_tests/testdata/benchmarks/yt3.ggpht.com/-dL2jeHlm2Ok/AAAAAAAAAAI/AAAAAAAAAAA/ZCMMkRj-hrw/s88-c-k-no/photo.jpg
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/css3-flexbox/combined-baseline-expected.png b/src/cobalt/layout_tests/testdata/css3-flexbox/combined-baseline-expected.png
new file mode 100644
index 0000000..4afe5c9
--- /dev/null
+++ b/src/cobalt/layout_tests/testdata/css3-flexbox/combined-baseline-expected.png
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/css3-flexbox/combined-baseline.html b/src/cobalt/layout_tests/testdata/css3-flexbox/combined-baseline.html
new file mode 100644
index 0000000..ec8d3a2
--- /dev/null
+++ b/src/cobalt/layout_tests/testdata/css3-flexbox/combined-baseline.html
@@ -0,0 +1,181 @@
+<!DOCTYPE html>
+<!--
+ | Combined tests for basic functionality of CSS Flexible Box Layout Module.
+ |   https://www.w3.org/TR/css-flexbox-1
+ -->
+<html>
+<head>
+<style>
+  body {
+    margin: 0px;
+    font-family: Roboto;
+    background-color: #808080;
+    font-size: 12px;
+  }
+  .vsized {
+    height: 38px;
+  }
+  .flex {
+    display: flex;
+    color: #99b9f3;
+    background-color: #ffee00;
+    opacity: 0.75;
+  }
+  .inlineflex {
+    display: inline-flex;
+    color: #99b9f3;
+    background-color: #ffee01;
+    opacity: 0.75;
+  }
+  .row {
+    flex-flow: row wrap;
+   }
+  .column {
+    flex-flow: column wrap;
+   }
+  .container {
+    overflow: hidden;
+    min-width: 2px;
+    padding: 2px;
+    border: 2px solid #000060;
+    outline: 2px solid #00f000;
+    margin: 6px;
+    border-bottom-width: 10px;
+  }
+  .item {
+    flex: 1 1 50px;
+    /* blue */
+    margin: 1px;
+    order: 0;
+  }
+  div > span {
+    background-color: #0047ab;
+  }
+</style>
+</head>
+<body>
+<div>
+
+-hg
+<div class="vsized inlineflex row container">
+  <span style="align-self: flex-end;">end</span>
+  <span style="align-self: flex-start;">start</span>
+  <span style="align-self: center;">center</span>
+  <span class="vsized" style="align-self: stretch;">stretch</span>
+</div>
+hg-hg
+<div class="vsized inlineflex row container">
+  <span style="align-self: center;">center</span>
+  <span style="align-self: flex-end;">end</span>
+  <span style="align-self: flex-start;">start</span>
+  <span class="vsized" style="align-self: stretch;">stretch</span>
+</div>
+hg-hg
+<div class="vsized inlineflex row container">
+  <span style="align-self: flex-start;">start</span>
+  <span style="align-self: flex-end;">end</span>
+  <span style="align-self: center;">center</span>
+  <span class="vsized" style="align-self: stretch;">stretch</span>
+</div>
+hg- 
+</div><div>
+-hg
+<div class="vsized inlineflex row container">
+  <span style="align-self: flex-start;">start</span>
+  <span style="align-self: flex-end;">end</span>
+  <span style="align-self: center;">center</span>
+  <span style="align-self: baseline;">hg</span>
+  <span style="margin-top: auto; font-size: 2em; align-self: baseline;">hg</span>
+  <span class="vsized" style="align-self: stretch;">stretch</span>
+</div>
+hg-hg
+<div class="vsized inlineflex row container">
+  <span style="align-self: flex-start;">start</span>
+  <span style="align-self: flex-end;">end</span>
+  <span style="align-self: center;">center</span>
+  <span style="margin-top: auto; font-size: 2em; align-self: baseline;">hg</span>
+  <span class="vsized" style="align-self: stretch;">stretch</span>
+</div>
+hg-hg
+<div class="vsized inlineflex row container">
+  <span style="align-self: flex-start;">start</span>
+  <span style="align-self: flex-end;">end</span>
+  <span style="align-self: center;">center</span>
+  <span style="align-self: baseline;">hg</span>
+  <span style="font-size: 2em; align-self: baseline;">hg</span>
+  <span class="vsized" style="align-self: stretch;">stretch</span>
+</div>
+hg- 
+</div><div>
+-hg
+<div class="vsized inlineflex row container">
+  <span style="align-self: baseline;">hg</span>
+  <span style="font-size: 2em; align-self: baseline;">hg</span>
+  <span style="align-self: flex-start;">start</span>
+  <span style="align-self: flex-end;">end</span>
+  <span style="align-self: center;">center</span>
+  <span class="vsized" style="align-self: stretch;">stretch</span>
+</div>
+hg-hg
+<div class="vsized inlineflex row container">
+  <span style="font-size: 2em; align-self: baseline;">hg</span>
+  <span style="align-self: baseline;">hg</span>
+  <span style="align-self: flex-start;">start</span>
+  <span style="align-self: flex-end;">end</span>
+  <span style="align-self: center;">center</span>
+  <span class="vsized" style="align-self: stretch;">stretch</span>
+</div>
+hg-hg
+<div class="vsized inlineflex row container">
+  <span style="align-self: flex-start;">start</span>
+  <span style="align-self: flex-end;">end</span>
+  <span style="align-self: center;">center</span>
+  <span class="vsized" style="align-self: stretch;">stretch</span>
+  <span style="font-size: 2em; align-self: baseline;">hg</span>
+  <span style="align-self: baseline;">hg</span>
+</div>
+hg- 
+</div><div>
+-hg
+<div class="vsized inlineflex row container">
+  <span style="display: inline-block; align-self: center; width: 10px; height: 20px;"></span>
+  <span style="align-self: flex-start;">start</span>
+  <span style="align-self: flex-end;">end</span>
+  <span style="align-self: center;">center</span>
+  <span class="vsized" style="align-self: stretch;">stretch</span>
+</div>
+hg-hg
+<div class="vsized inlineflex row container">
+</div>
+hg-hg
+<div class="vsized inlineflex row container">
+  <span></span>
+</div>
+hg-hg
+<div class="vsized inlineflex column container">
+  <span style="display: inline-block; width: 10px; height: 10px;"></span>
+  <span style="display: inline-block; width: 10px; height: 10px;"></span>
+  <span style="display: inline-block; width: 10px; height: 10px;"></span>
+</div>
+hg-hg
+<div class="vsized inlineflex column container">
+  <span style="display: inline-block; width: 10px; height: 30px;"></span>
+</div>
+hg-hg
+<div class="vsized inlineflex column container">
+  <span style="display: inline-block; width: 10px; height: 10px;"></span>
+</div>
+hg-hg
+<div class="vsized inlineflex column container">
+  <span></span>
+</div>
+hg-hg
+<div class="vsized inlineflex column container">
+</div>
+hg-
+
+</div>
+
+</body>
+</html>
+
diff --git a/src/cobalt/layout_tests/testdata/css3-flexbox/combined-positioning-tests-expected.png b/src/cobalt/layout_tests/testdata/css3-flexbox/combined-positioning-tests-expected.png
index a755805..cbf7803 100644
--- a/src/cobalt/layout_tests/testdata/css3-flexbox/combined-positioning-tests-expected.png
+++ b/src/cobalt/layout_tests/testdata/css3-flexbox/combined-positioning-tests-expected.png
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/css3-flexbox/combined-shrinking-and-justify-content-expected.png b/src/cobalt/layout_tests/testdata/css3-flexbox/combined-shrinking-and-justify-content-expected.png
new file mode 100644
index 0000000..010813f
--- /dev/null
+++ b/src/cobalt/layout_tests/testdata/css3-flexbox/combined-shrinking-and-justify-content-expected.png
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/css3-flexbox/combined-shrinking-and-justify-content.html b/src/cobalt/layout_tests/testdata/css3-flexbox/combined-shrinking-and-justify-content.html
new file mode 100644
index 0000000..128a8f0
--- /dev/null
+++ b/src/cobalt/layout_tests/testdata/css3-flexbox/combined-shrinking-and-justify-content.html
@@ -0,0 +1,271 @@
+<!DOCTYPE html>
+<!--
+ | Combined tests for basic functionality of CSS Flexible Box Layout Module.
+ |   https://www.w3.org/TR/css-flexbox-1
+ | This test focuses on shrinking flex items and justify-content values.
+ -->
+<html>
+<head>
+<style>
+  body {
+    margin: 0px;
+    font-family: Roboto;
+    background-color: #808080;
+    font-size: 12px;
+  }
+  .inlineflex {
+    display:  inline-flex;
+    color: #99b9f3;
+    background-color: #ffee08;
+    opacity: 0.75;
+  }
+  .flex {
+    display:  flex;
+    color: #99b9f3;
+    background-color: #ffee08;
+    opacity: 0.75;
+  }
+
+  .widesized {
+    width: 100px;
+    height: 10px;
+    -no-margin-left: auto;
+  }
+  .sized {
+    width: 50px;
+    height: 10px;
+  }
+  .container {
+    flex-flow: row nowrap;
+    padding: 1px;
+    border: 1px solid #000060;
+    outline: 1px solid #00f000;
+    margin: 3px;
+  }
+  .flex-end {
+    justify-content: flex-end;
+    align-items: center;
+    align-content: center;
+  }
+  .center {
+    justify-content: center;
+    align-items: center;
+    align-content: center;
+  }
+  .space-between {
+    justify-content: space-between;
+    align-items: center;
+    align-content: center;
+  }
+  .center {
+    justify-content: center;
+    align-items: center;
+    align-content: center;
+  }
+  .space-around {
+    justify-content: space-around;
+    align-items: center;
+    align-content: center;
+  }
+  .blue {
+    background-color: #0047ab;
+  }
+  .red {
+    background-color: red;
+  }
+  .hidden {
+    overflow: hidden;
+  }
+  .visible {
+    overflow: visible;
+  }
+  .shrink-1 {
+    flex-shrink: 1;
+  }
+  .shrink-0-5 {
+    flex-shrink: 0.5;
+  }
+  .shrink-0-25 {
+    flex-shrink: 0.25;
+  }
+  .basis-0 {
+    flex-basis: 0;
+  }
+  .basis-big {
+    flex-basis: 100px;
+  }
+
+</style>
+</head>
+<body>
+<div style="display:inline-block; margin: 0 5px 0 40px; width: 50px;">
+
+<div class="sized flex flex-end container">
+  <div class="blue widesized shrink-1"></div>
+</div>
+
+<div class="sized flex flex-end container">
+  <div class="red widesized shrink-1"></div>
+  <div class="blue widesized shrink-0-5"></div>
+</div>
+
+<div class="sized flex flex-end container">
+  <div class="red widesized shrink-1"></div>
+  <div class="blue widesized shrink-1"></div>
+</div>
+
+<div class="sized flex flex-end container">
+  <div class="blue widesized shrink-0-5"></div>
+</div>
+
+<div class="sized flex flex-end container">
+  <div class="red widesized shrink-0-5"></div>
+  <div class="blue widesized shrink-0-25"></div>
+</div>
+
+<div class="sized flex flex-end container">
+  <div class="red widesized shrink-0-5 basis-big"></div>
+  <div class="blue widesized shrink-0-25 basis-big"></div>
+</div>
+
+flex-end
+</div>
+<div style="display:inline-block; margin: 0 55px 0 0; width: 50px;">
+
+<div class="sized flex container">
+  <div class="blue widesized shrink-1"></div>
+</div>
+
+<div class="sized flex container">
+  <div class="red widesized shrink-1"></div>
+  <div class="blue widesized shrink-0-5"></div>
+</div>
+
+<div class="sized flex container">
+  <div class="red widesized shrink-1"></div>
+  <div class="blue widesized shrink-1"></div>
+</div>
+
+<div class="sized flex container">
+  <div class="blue widesized shrink-0-5"></div>
+</div>
+
+<div class="sized flex container">
+  <div class="red widesized shrink-0-5"></div>
+  <div class="blue widesized shrink-0-25"></div>
+</div>
+
+<div class="sized flex container">
+  <div class="red widesized shrink-0-5 basis-big"></div>
+  <div class="blue widesized shrink-0-25 basis-big"></div>
+</div>
+
+flex-start
+</div>
+<div style="display:inline-block; margin: 0 0 0 5px; width: 75px;">
+
+
+<div class="sized flex space-around container">
+  <div class="blue widesized shrink-1"></div>
+</div>
+
+<div class="sized flex space-around container">
+  <div class="red widesized shrink-1"></div>
+  <div class="blue widesized shrink-0-5"></div>
+</div>
+
+<div class="sized flex space-around container">
+  <div class="red widesized shrink-1"></div>
+  <div class="blue widesized shrink-1"></div>
+</div>
+
+<div class="sized flex space-around container">
+  <div class="blue widesized shrink-0-5"></div>
+</div>
+
+<div class="sized flex space-around container">
+  <div class="red widesized shrink-0-5"></div>
+  <div class="blue widesized shrink-0-25"></div>
+</div>
+
+<div class="sized flex space-around container">
+  <div class="red widesized shrink-0-5 basis-big"></div>
+  <div class="blue widesized shrink-0-25 basis-big"></div>
+</div>
+
+
+space-around
+</div>
+<div style="display:inline-block; margin: 0 0 0 15px; width: 75px;">
+
+
+<div class="sized flex center container">
+  <div class="blue widesized shrink-1"></div>
+</div>
+
+<div class="sized flex center container">
+  <div class="red widesized shrink-1"></div>
+  <div class="blue widesized shrink-0-5"></div>
+</div>
+
+<div class="sized flex center container">
+  <div class="red widesized shrink-1"></div>
+  <div class="blue widesized shrink-1"></div>
+</div>
+
+<div class="sized flex center container">
+  <div class="blue widesized shrink-0-5"></div>
+</div>
+
+<div class="sized flex center container">
+  <div class="red widesized shrink-0-5"></div>
+  <div class="blue widesized shrink-0-25"></div>
+</div>
+
+<div class="sized flex center container">
+  <div class="red widesized shrink-0-5 basis-big"></div>
+  <div class="blue widesized shrink-0-25 basis-big"></div>
+</div>
+
+
+center
+</div>
+<div style="display:inline-block; margin: 0 0 0 5px; width: 90px;">
+
+
+
+<div class="sized flex space-between container">
+  <div class="blue widesized shrink-1"></div>
+</div>
+
+<div class="sized flex space-between container">
+  <div class="red widesized shrink-1"></div>
+  <div class="blue widesized shrink-0-5"></div>
+</div>
+
+<div class="sized flex space-between container">
+  <div class="red widesized shrink-1"></div>
+  <div class="blue widesized shrink-1"></div>
+</div>
+
+<div class="sized flex space-between container">
+  <div class="blue widesized shrink-0-5"></div>
+</div>
+
+<div class="sized flex space-between container">
+  <div class="red widesized shrink-0-5"></div>
+  <div class="blue widesized shrink-0-25"></div>
+</div>
+
+<div class="sized flex space-between container">
+  <div class="red widesized shrink-0-5 basis-big"></div>
+  <div class="blue widesized shrink-0-25 basis-big"></div>
+</div>
+
+
+space-between
+</div>
+
+</body>
+</html>
+
diff --git a/src/cobalt/layout_tests/testdata/css3-flexbox/combined-with-baselines-percentages-expected.png b/src/cobalt/layout_tests/testdata/css3-flexbox/combined-with-baselines-percentages-expected.png
index 1475746..881adc4 100644
--- a/src/cobalt/layout_tests/testdata/css3-flexbox/combined-with-baselines-percentages-expected.png
+++ b/src/cobalt/layout_tests/testdata/css3-flexbox/combined-with-baselines-percentages-expected.png
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/css3-flexbox/combined-with-baselines-percentages.html b/src/cobalt/layout_tests/testdata/css3-flexbox/combined-with-baselines-percentages.html
index 6319586..5629e51 100644
--- a/src/cobalt/layout_tests/testdata/css3-flexbox/combined-with-baselines-percentages.html
+++ b/src/cobalt/layout_tests/testdata/css3-flexbox/combined-with-baselines-percentages.html
@@ -22,7 +22,7 @@
     height: 40px;
   }
   .small {
-    width: 100px;
+    width: 30px;
     min-height: 40px;
   }
   .flex {
@@ -83,56 +83,113 @@
   <span class="blue" style="flex-basis: 20%; margin: 0px; border: 0px; padding: 0px; align-self:center;">WWWW</span>
   <span class="blue" style="flex-basis: 95%; margin: 0px; border: 0px; padding: 0px; align-self:center;">XXXX</span>
 </div>
-[5]
-
-(1)
+gbHO-
 <div class="small inlineflex container">
   <span class="blue" style="flex-basis: 20%;">a</span>
 </div>
-(2a)
 <div class="inlineflex container">
   <span class="blue">AAa</span>
 </div>
-(2b)
 <div class="inlineflex container">
   <span class="blue" style="overflow:hidden; flex-basis: 20px;">AAb</span>
 </div>
-(2c)
 <div class="inlineflex container">
   <span class="blue" style="overflow:hidden; flex-basis: 20px; max-width:21px;">AAc</span>
 </div>
-(3)
 <div class="inlineflex container green">
 <div class="inlineflex container">
-  <span class="blue" style="overflow:hidden; flex-basis: 50%;">DDD</span>
+  <span class="blue" style="overflow:hidden; flex-basis: 50%;">DDh</span>
 </div>
 </div>
-(4a)
+<div class="inlineflex container green">
+<div class="inlineflex container">
+  <span class="blue" style="flex-basis: 50%;">DDv</span>
+</div>
+</div>
 <div class="vsized inlineflex container">
-  <span class="blue" style="flex-basis: 12%;">VVVV</span>
+  <span class="blue" style="flex-basis: 5%;">V1V</span>
 </div>
-(4b)
 <div class="vsized inlineflex container">
-  <span class="blue" style="flex-basis: 12%; max-width:25px;">VVVV</span>
+  <span class="blue" style="flex-basis: 12%; max-width:15px;">V2V</span>
 </div>
-(5)
-<div class="vsized inlineflex container" style="min-width: 100px">
-  <span class="blue" style="flex-basis: 12%; max-width:25px;">VVVV</span>
+<div class="vsized inlineflex container">
+  <span class="blue" style="flex-basis: 12%; max-width:70%;">V3V</span>
 </div>
-(6)
-<div class="vsized inlineflex container" style="max-width: 5px;">
+<div class="vsized inlineflex container" style="min-width: 5%">
+  <span class="blue" style="flex-basis: 12%; max-width:15px;">V4V</span>
+</div>
+<div class="vsized inlineflex container" style="width: 40px;">
+  <span class="blue" style="flex-basis: 12%; max-width:15px;">V5V</span>
+</div>
+<div class="vsized inlineflex container" style="width: 40px;">
+  <span class="blue" style="flex-basis: 12%; max-width:30%;">V6V</span>
+</div>
+<div class="vsized inlineflex container" style="min-width: 5%">
+  <span class="blue" style="flex-basis: 12%; max-width:15px;">V7V</span>
+</div>
+<div class="vsized inlineflex container" style="min-width: 5%">
+  <span class="blue" style="flex-basis: 12%; max-width:50%;">V8V</span>
+</div>
+
+
+<div class="vsized inlineflex container" style="max-width: 1%;">
   <span class="blue">VVVV</span>
 </div>
-(7)
-<div class="vsized inlineflex container" style="max-width: 5px; overflow: visible;">
+<div class="vsized inlineflex container" style="max-width: 1%; overflow: visible;">
   <span class="blue">VVVV</span>
 </div>
-(8)
+<div class="vsized inlineflex container" style="max-width: 1%;">
+  <span class="blue">VVVV</span>
+</div>
+<div class="vsized inlineflex container" style="max-width: 1%; overflow: visible;">
+  <span class="blue">VVVV</span>
+</div>
+
+<div class="vsized inlineflex container" style="max-width: 10px;">
+  <span class="blue">HHHH</span>
+</div>
+
+<div class="vsized inlineflex container" style="max-width: 10px; overflow: visible;">
+  <span class="blue">VVVV</span>
+</div>
+
+<div class="vsized inlineflex container" style="max-width: 10px;">
+  <span class="blue" style="overflow: hidden;">HHHH</span>
+</div>
+
+<div class="vsized inlineflex container" style="max-width: 10px;">
+  <span class="blue" style="overflow: visible;">HHHH</span>
+</div>
+
+<div class="vsized inlineflex container" style="max-width: 10px;">
+  <span class="blue" style="min-width: 1px;">MHHM</span>
+</div>
+
+<div class="vsized inlineflex container" style="max-width: 10px; overflow: visible;">
+  <span class="blue" style="min-width: 1px;">MVVM</span>
+</div>
+
+<div class="vsized inlineflex container" style="max-width: 10px;">
+  <span class="blue" style="max-width: 4px; overflow: visible;">MHHM</span>
+</div>
+
+<div class="vsized inlineflex container" style="max-width: 10px; overflow: visible;">
+  <span class="blue" style="max-width: 4px; overflow: visible;">MVVM</span>
+</div>
+
+<div class="vsized inlineflex container" style="max-width: 10px;">
+  <span class="blue" style="max-width: 4px; overflow: hidden;">MHHM</span>
+</div>
+
+<div class="vsized inlineflex container" style="max-width: 10px; overflow: visible;">
+  <span class="blue" style="max-width: 4px; overflow: hidden;">MVVM</span>
+</div>
+-OHgb
 
 <div class="flex" style="flex-flow: row wrap; height:75px; ">
 
-<div>block first</div>
-<div style="position: abolute;">block abs</div>
+<div>block first item</div>
+<div id="item2" style="position: absolute; background-color:#FF8C00;">block abs</div>
 anonymous item 3
 
 <div style="margin-left:auto; margin-right:auto">block middle</div>
diff --git a/src/cobalt/layout_tests/testdata/css3-flexbox/content-based-minimum-size-expected.png b/src/cobalt/layout_tests/testdata/css3-flexbox/content-based-minimum-size-expected.png
new file mode 100644
index 0000000..b17c1ce
--- /dev/null
+++ b/src/cobalt/layout_tests/testdata/css3-flexbox/content-based-minimum-size-expected.png
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/css3-flexbox/content-based-minimum-size.html b/src/cobalt/layout_tests/testdata/css3-flexbox/content-based-minimum-size.html
new file mode 100644
index 0000000..c9dd6b7
--- /dev/null
+++ b/src/cobalt/layout_tests/testdata/css3-flexbox/content-based-minimum-size.html
@@ -0,0 +1,70 @@
+<!DOCTYPE html>
+<!--
+ | Combined tests for basic functionality of CSS Flexible Box Layout Module.
+ |   https://www.w3.org/TR/css-flexbox-1
+ | This test focuses on content-based minimum size.
+ -->
+<html>
+<head>
+<style>
+  body {
+    margin: 0px;
+    font-family: Roboto;
+    background-color: #808080;
+    font-size: 12px;
+  }
+  .inlineflex {
+    display:inline-flex;
+    color: #99b9f3;
+    background-color: #ffee08;
+    opacity: 0.75;
+  }
+  .container {
+    overflow: hidden;
+    flex-flow: row wrap;
+    justify-content: space-around;
+    align-items: center;
+    align-content: flex-end;
+    min-width: 2px;
+    padding: 2px;
+    border: 2px solid #000060;
+    outline: 2px solid #00f000;
+    margin: 6px;
+  }
+  .blue {
+    background-color: #0047ab;
+  }
+  .hidden {
+    overflow: hidden;
+  }
+  .visible {
+    overflow: visible;
+  }
+
+</style>
+</head>
+<body>
+
+<div class="inlineflex container" style="max-width: 20px;">
+  <span class="blue">HHHHH</span>
+</div>
+
+<div class="visible inlineflex container" style="max-width: 20px;">
+  <span class="blue">VVVVV</span>
+</div>
+
+<div class="visible inlineflex container" style="max-width: 20px;">
+  <span class="hidden blue">HHHHH</span>
+</div>
+
+<div class="inlineflex container" style="max-width: 20px;">
+  <span class="blue" style="min-width: 5px;">mHHHm</span>
+</div>
+
+<div class="visible inlineflex container" style="max-width: 20px;">
+  <span class="blue" style="min-width: 5px;">mVVVm</span>
+</div>
+
+</body>
+</html>
+
diff --git a/src/cobalt/layout_tests/testdata/css3-flexbox/layout_tests.txt b/src/cobalt/layout_tests/testdata/css3-flexbox/layout_tests.txt
index 759ff0c..da59b48 100644
--- a/src/cobalt/layout_tests/testdata/css3-flexbox/layout_tests.txt
+++ b/src/cobalt/layout_tests/testdata/css3-flexbox/layout_tests.txt
@@ -1,3 +1,6 @@
+combined-baseline
 combined-order-and-multiline
 combined-positioning-tests
+combined-shrinking-and-justify-content
 combined-with-baselines-percentages
+content-based-minimum-size
diff --git a/src/cobalt/layout_tests/testdata/intersection-observer/intersection-ratio-is-nonzero-but-is-intersecting-is-false-expected.png b/src/cobalt/layout_tests/testdata/intersection-observer/intersection-ratio-is-nonzero-but-is-intersecting-is-false-expected.png
new file mode 100644
index 0000000..3388bb1
--- /dev/null
+++ b/src/cobalt/layout_tests/testdata/intersection-observer/intersection-ratio-is-nonzero-but-is-intersecting-is-false-expected.png
Binary files differ
diff --git a/src/cobalt/layout_tests/testdata/intersection-observer/intersection-ratio-is-nonzero-but-is-intersecting-is-false.html b/src/cobalt/layout_tests/testdata/intersection-observer/intersection-ratio-is-nonzero-but-is-intersecting-is-false.html
new file mode 100644
index 0000000..86dace5
--- /dev/null
+++ b/src/cobalt/layout_tests/testdata/intersection-observer/intersection-ratio-is-nonzero-but-is-intersecting-is-false.html
@@ -0,0 +1,69 @@
+<!DOCTYPE html>
+<!--
+ | This test checks that an IntersectionObserverEntry's |isIntersecting|
+ | property is set to false if its |intersectionRatio| > 0 but
+ | |intersectionRatio| < all of the IntersectionObserver's threshold values.
+ | The target element is initially yellow, and only turns blue if the
+ | IntersectionObserver correctly computes the |isIntersecting| and
+ | |intersectionRatio| fields as described above.
+ |   https://www.w3.org/TR/intersection-observer/
+ -->
+<html>
+<head>
+  <style>
+    #target {
+      background-color: yellow;
+      width: 200px;
+      height: 150px;
+      position: absolute;
+      left: -100px;
+      top: -75px;
+    }
+  </style>
+</head>
+<body>
+  <div>
+    <div id="target">
+    </div>
+  </div>
+
+  <script>
+    if (window.testRunner) {
+      window.testRunner.waitUntilDone();
+    }
+
+    window.addEventListener("load", function() {
+      var targetElement = document.querySelector('#target');
+      var expectedRatio = 0.25;
+
+      function handleIntersect(entries, observer) {
+        entries.forEach(function(entry) {
+          console.log(entry.intersectionRatio);
+          if (entry.intersectionRatio == expectedRatio && !entry.isIntersecting) {
+            entry.target.style.backgroundColor = "blue";
+          }
+        });
+      }
+
+      function createObserver() {
+        var options = {
+          root: null,
+          rootMargin: "0px",
+          threshold: 0.5
+        };
+
+        var observer = new IntersectionObserver(handleIntersect, options);
+        observer.observe(targetElement);
+      }
+
+      createObserver();
+
+      if (window.testRunner) {
+        window.testRunner.DoNonMeasuredLayout();
+        window.setTimeout(function() { window.testRunner.notifyDone(); }, 0);
+      }
+    });
+  </script>
+
+</body>
+</html>
diff --git a/src/cobalt/layout_tests/testdata/intersection-observer/layout_tests.txt b/src/cobalt/layout_tests/testdata/intersection-observer/layout_tests.txt
index 8962d98..f449fdd 100644
--- a/src/cobalt/layout_tests/testdata/intersection-observer/layout_tests.txt
+++ b/src/cobalt/layout_tests/testdata/intersection-observer/layout_tests.txt
@@ -1,5 +1,6 @@
 element-in-containing-block-chain-has-overflow-clip-with-padding-and-border
 element-in-containing-block-chain-has-overflow-clip-without-padding-or-border
+intersection-ratio-is-nonzero-but-is-intersecting-is-false
 multiple-observers-with-different-roots-and-targets
 no-intersection-when-root-is-not-in-containing-block-chain-of-target
 observers-should-update-when-elements-move
diff --git a/src/cobalt/layout_tests/testdata/web-platform-tests/XMLHttpRequest/web_platform_tests.txt b/src/cobalt/layout_tests/testdata/web-platform-tests/XMLHttpRequest/web_platform_tests.txt
index 64d65f0..f500a93 100644
--- a/src/cobalt/layout_tests/testdata/web-platform-tests/XMLHttpRequest/web_platform_tests.txt
+++ b/src/cobalt/layout_tests/testdata/web-platform-tests/XMLHttpRequest/web_platform_tests.txt
@@ -152,7 +152,7 @@
 # SyntaxError: Unexpected EOF
 # js_error: send-entity-body-document.htm,FAIL
 send-entity-body-empty.htm,FAIL
-# TODO[johnx]: re-enable this after Cobalt wpt refactoring.
+# TODO: re-enable this after Cobalt wpt refactoring.
 send-entity-body-get-head-async.htm,PASS
 send-entity-body-get-head.htm,FAIL
 send-entity-body-none.htm,FAIL
diff --git a/src/cobalt/loader/fetcher.h b/src/cobalt/loader/fetcher.h
index 1bc7010..152d790 100644
--- a/src/cobalt/loader/fetcher.h
+++ b/src/cobalt/loader/fetcher.h
@@ -74,33 +74,23 @@
   };
 
   // Concrete Fetcher subclass should start fetching immediately in constructor.
-  explicit Fetcher(Handler* handler)
-      : handler_(handler), did_fail_from_transient_error_(false) {}
-
-  const Origin& last_url_origin() const { return last_url_origin_; }
-
-  bool did_fail_from_transient_error() const {
-    return did_fail_from_transient_error_;
-  }
+  explicit Fetcher(Handler* handler) : handler_(handler) {}
 
   // Concrete Fetcher subclass should cancel fetching in destructor.
   virtual ~Fetcher() = 0;
 
- protected:
-  Handler* handler() const { return handler_; }
-
-  void SetLastUrlOrigin(const Origin& origin) { last_url_origin_ = origin; }
-  void SetFailedFromTransientError() { did_fail_from_transient_error_ = true; }
-
- private:
-  Handler* handler_;
-
   // Indicates whether the resource is cross-origin.
-  Origin last_url_origin_;
+  virtual Origin last_url_origin() const { return Origin(); }
 
   // Whether or not the fetcher failed from an error that is considered
   // transient, indicating that the same fetch may later succeed.
-  bool did_fail_from_transient_error_;
+  virtual bool did_fail_from_transient_error() const { return false; }
+
+ protected:
+  Handler* handler() const { return handler_; }
+
+ private:
+  Handler* handler_;
 };
 
 }  // namespace loader
diff --git a/src/cobalt/loader/fetcher_cache.cc b/src/cobalt/loader/fetcher_cache.cc
index e07ba47..9b0244f 100644
--- a/src/cobalt/loader/fetcher_cache.cc
+++ b/src/cobalt/loader/fetcher_cache.cc
@@ -21,36 +21,47 @@
 
 namespace cobalt {
 namespace loader {
+namespace {
 
-class FetcherCache::CachedFetcherHandler : public Fetcher::Handler {
+// Wraps a Fetcher::Handler and saves all data fetched and its associated
+// information.
+class CachedFetcherHandler : public Fetcher::Handler {
  public:
   typedef base::Callback<void(
-      CachedFetcherHandler* handler, const std::string& url,
+      const std::string& url,
       const scoped_refptr<net::HttpResponseHeaders>& headers,
-      const Origin& last_url_origin, std::string* data)>
+      const Origin& last_url_origin, bool did_fail_from_transient_error,
+      std::string* data)>
       SuccessCallback;
-  typedef base::Callback<void(CachedFetcherHandler* handler)> FailureCallback;
 
   CachedFetcherHandler(const std::string& url, Fetcher::Handler* handler,
-                       const SuccessCallback& on_success_callback,
-                       const FailureCallback& on_failure_callback)
+                       const SuccessCallback& on_success_callback)
       : url_(url),
         handler_(handler),
-        on_success_callback_(on_success_callback),
-        on_failure_callback_(on_failure_callback) {
+        on_success_callback_(on_success_callback) {
     DCHECK(handler_);
     DCHECK(!on_success_callback_.is_null());
-    DCHECK(!on_failure_callback_.is_null());
+  }
+
+  // Attach a wrapping fetcher so it can be used when forwarding the callbacks.
+  // This ensures that the underlying handler sees the same Fetcher object in
+  // the callback as the one returned by CreateCachedFetcher().
+  void AttachFetcher(Fetcher* wrapping_fetcher) {
+    DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
+    DCHECK(!wrapping_fetcher_);
+    DCHECK(wrapping_fetcher);
+    wrapping_fetcher_ = wrapping_fetcher;
   }
 
  private:
   // From Fetcher::Handler.
   LoadResponseType OnResponseStarted(
-      Fetcher* fetcher,
+      Fetcher*,
       const scoped_refptr<net::HttpResponseHeaders>& headers) override {
     // TODO: Respect HttpResponseHeaders::GetMaxAgeValue().
     DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
-    auto response = handler_->OnResponseStarted(fetcher, headers);
+    DCHECK(wrapping_fetcher_);
+    auto response = handler_->OnResponseStarted(wrapping_fetcher_, headers);
     if (response == kLoadResponseContinue && headers) {
       headers_ = headers;
       auto content_length = headers_->GetContentLength();
@@ -61,46 +72,120 @@
     return response;
   }
 
-  void OnReceived(Fetcher* fetcher, const char* data, size_t size) override {
+  void OnReceived(Fetcher*, const char* data, size_t size) override {
     DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
+    DCHECK(wrapping_fetcher_);
     data_.insert(data_.end(), data, data + size);
-    handler_->OnReceived(fetcher, data, size);
+    handler_->OnReceived(wrapping_fetcher_, data, size);
   }
-  void OnReceivedPassed(Fetcher* fetcher,
-                        std::unique_ptr<std::string> data) override {
+
+  void OnReceivedPassed(Fetcher*, std::unique_ptr<std::string> data) override {
     DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
+    DCHECK(wrapping_fetcher_);
     data_.insert(data_.end(), data->begin(), data->end());
-    handler_->OnReceivedPassed(fetcher, std::move(data));
+    handler_->OnReceivedPassed(wrapping_fetcher_, std::move(data));
   }
-  void OnDone(Fetcher* fetcher) override {
+
+  void OnDone(Fetcher*) override {
     DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
-    last_url_origin_ = fetcher->last_url_origin();
-    handler_->OnDone(fetcher);
-    on_success_callback_.Run(this, url_, headers_, last_url_origin_, &data_);
+    DCHECK(wrapping_fetcher_);
+    handler_->OnDone(wrapping_fetcher_);
+    on_success_callback_.Run(
+        url_, headers_, wrapping_fetcher_->last_url_origin(),
+        wrapping_fetcher_->did_fail_from_transient_error(), &data_);
   }
-  void OnError(Fetcher* fetcher, const std::string& error) override {
+
+  void OnError(Fetcher*, const std::string& error) override {
     DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
-    handler_->OnError(fetcher, error);
-    on_failure_callback_.Run(this);
+    DCHECK(wrapping_fetcher_);
+    handler_->OnError(wrapping_fetcher_, error);
   }
 
   THREAD_CHECKER(thread_checker_);
 
   const std::string url_;
+  Fetcher* wrapping_fetcher_ = nullptr;
   Fetcher::Handler* const handler_;
   const SuccessCallback on_success_callback_;
-  const FailureCallback on_failure_callback_;
 
   scoped_refptr<net::HttpResponseHeaders> headers_;
-  Origin last_url_origin_;
   std::string data_;
 };
 
+// Wraps an underlying, real Fetcher for an ongoing request, so we can ensure
+// that |handler_| is deleted when the Fetcher object is deleted.
+class OngoingFetcher : public Fetcher {
+ public:
+  OngoingFetcher(std::unique_ptr<CachedFetcherHandler> handler,
+                 const Loader::FetcherCreator& real_fetcher_creator)
+      : Fetcher(handler.get()), handler_(std::move(handler)) {
+    DCHECK(handler_);
+    handler_->AttachFetcher(this);
+    fetcher_ = real_fetcher_creator.Run(handler_.get());
+  }
+  ~OngoingFetcher() override { DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); }
+
+  Origin last_url_origin() const override {
+    DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
+    // Some Fetchers may call callbacks inside its ctor, in such case |fetcher_|
+    // hasn't been assigned and a default value is returned.
+    return fetcher_ ? fetcher_->last_url_origin() : Origin();
+  }
+  bool did_fail_from_transient_error() const override {
+    DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
+    // Some Fetchers may call callbacks inside its ctor, in such case |fetcher_|
+    // hasn't been assigned and a default value is returned.
+    return fetcher_ ? fetcher_->did_fail_from_transient_error() : false;
+  }
+
+ private:
+  THREAD_CHECKER(thread_checker_);
+
+  std::unique_ptr<CachedFetcherHandler> handler_;
+  std::unique_ptr<Fetcher> fetcher_;
+};
+
+// Fulfills the request directly using the data passed to ctor.
+class CachedFetcher : public Fetcher {
+ public:
+  CachedFetcher(const GURL& url,
+                const scoped_refptr<net::HttpResponseHeaders>& headers,
+                const char* data, size_t size, const Origin& last_url_origin,
+                bool did_fail_from_transient_error, Handler* handler)
+      : Fetcher(handler),
+        last_url_origin_(last_url_origin),
+        did_fail_from_transient_error_(did_fail_from_transient_error) {
+    auto response_type = handler->OnResponseStarted(this, headers);
+    if (response_type == kLoadResponseAbort) {
+      std::string error_msg(base::StringPrintf(
+          "Handler::OnResponseStarted() aborted URL %s", url.spec().c_str()));
+      handler->OnError(this, error_msg.c_str());
+      return;
+    }
+    handler->OnReceived(this, data, size);
+    handler->OnDone(this);
+  }
+
+  Origin last_url_origin() const override { return last_url_origin_; }
+  bool did_fail_from_transient_error() const override {
+    return did_fail_from_transient_error_;
+  }
+
+ private:
+  Origin last_url_origin_;
+  bool did_fail_from_transient_error_;
+};
+
+}  // namespace
+
 class FetcherCache::CacheEntry {
  public:
   CacheEntry(const scoped_refptr<net::HttpResponseHeaders>& headers,
-             const Origin& last_url_origin, std::string* data)
-      : headers_(headers), last_url_origin_(last_url_origin) {
+             const Origin& last_url_origin, bool did_fail_from_transient_error,
+             std::string* data)
+      : headers_(headers),
+        last_url_origin_(last_url_origin),
+        did_fail_from_transient_error_(did_fail_from_transient_error) {
     DCHECK(data);
     data_.swap(*data);
   }
@@ -113,6 +198,9 @@
     DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
     return last_url_origin_;
   }
+  bool did_fail_from_transient_error() const {
+    return did_fail_from_transient_error_;
+  }
   const char* data() const {
     DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
     return data_.data();
@@ -121,33 +209,20 @@
     DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
     return data_.size();
   }
+  size_t capacity() const {
+    DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
+    return data_.capacity();
+  }
 
  private:
   THREAD_CHECKER(thread_checker_);
 
   scoped_refptr<net::HttpResponseHeaders> headers_;
   Origin last_url_origin_;
+  bool did_fail_from_transient_error_;
   std::string data_;
 };
 
-class FetcherCache::CachedFetcher : public Fetcher {
- public:
-  CachedFetcher(const GURL& url, const FetcherCache::CacheEntry& entry,
-                Handler* handler)
-      : Fetcher(handler) {
-    SetLastUrlOrigin(entry.last_url_origin());
-    auto response_type = handler->OnResponseStarted(this, entry.headers());
-    if (response_type == kLoadResponseAbort) {
-      std::string error_msg(base::StringPrintf(
-          "Handler::OnResponseStarted() aborted URL %s", url.spec().c_str()));
-      handler->OnError(this, error_msg.c_str());
-      return;
-    }
-    handler->OnReceived(this, entry.data(), entry.size());
-    handler->OnDone(this);
-  }
-};
-
 FetcherCache::FetcherCache(const char* name, size_t capacity)
     : capacity_(capacity),
       memory_size_in_bytes_(
@@ -160,11 +235,6 @@
 FetcherCache::~FetcherCache() {
   DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
 
-  while (!ongoing_fetchers_.empty()) {
-    delete *ongoing_fetchers_.begin();
-    ongoing_fetchers_.erase(ongoing_fetchers_.begin());
-  }
-
   while (!cache_entries_.empty()) {
     delete cache_entries_.begin()->second;
     cache_entries_.erase(cache_entries_.begin());
@@ -206,34 +276,35 @@
     auto entry = iterator->second;
     cache_entries_.erase(iterator);
     cache_entries_.insert(std::make_pair(url.spec(), entry));
-    return std::unique_ptr<Fetcher>(new CachedFetcher(url, *entry, handler));
+    return std::unique_ptr<Fetcher>(
+        new CachedFetcher(url, entry->headers(), entry->data(), entry->size(),
+                          entry->last_url_origin(),
+                          entry->did_fail_from_transient_error(), handler));
   }
 
-  auto cached_handler = new CachedFetcherHandler(
+  std::unique_ptr<CachedFetcherHandler> cached_handler(new CachedFetcherHandler(
       url.spec(), handler,
-      base::Bind(&FetcherCache::OnFetchSuccess, base::Unretained(this)),
-      base::Bind(&FetcherCache::OnFetchFailure, base::Unretained(this)));
-  ongoing_fetchers_.insert(cached_handler);
-  return real_fetcher_creator.Run(cached_handler);
+      base::Bind(&FetcherCache::OnFetchSuccess, base::Unretained(this))));
+  return std::unique_ptr<Fetcher>(
+      new OngoingFetcher(std::move(cached_handler), real_fetcher_creator));
 }
 
 void FetcherCache::OnFetchSuccess(
-    CachedFetcherHandler* handler, const std::string& url,
+    const std::string& url,
     const scoped_refptr<net::HttpResponseHeaders>& headers,
-    const Origin& last_url_origin, std::string* data) {
+    const Origin& last_url_origin, bool did_fail_from_transient_error,
+    std::string* data) {
   DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
   DCHECK(data);
 
-  auto iterator = ongoing_fetchers_.find(handler);
-  DCHECK(iterator != ongoing_fetchers_.end());
-
   if (data->size() <= capacity_) {
-    auto entry = new CacheEntry(headers, last_url_origin, data);
-    total_size_ += entry->size();
+    auto entry = new CacheEntry(headers, last_url_origin,
+                                did_fail_from_transient_error, data);
+    total_size_ += entry->capacity();
     cache_entries_.insert(std::make_pair(url, entry));
     while (total_size_ > capacity_) {
       DCHECK(!cache_entries_.empty());
-      total_size_ -= cache_entries_.begin()->second->size();
+      total_size_ -= cache_entries_.begin()->second->capacity();
       delete cache_entries_.begin()->second;
       cache_entries_.erase(cache_entries_.begin());
       --count_resources_cached_;
@@ -241,18 +312,6 @@
     ++count_resources_cached_;
     memory_size_in_bytes_ = total_size_;
   }
-
-  delete *iterator;
-  ongoing_fetchers_.erase(iterator);
-}
-
-void FetcherCache::OnFetchFailure(CachedFetcherHandler* handler) {
-  DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
-
-  auto iterator = ongoing_fetchers_.find(handler);
-  DCHECK(iterator != ongoing_fetchers_.end());
-  delete *iterator;
-  ongoing_fetchers_.erase(iterator);
 }
 
 }  // namespace loader
diff --git a/src/cobalt/loader/fetcher_cache.h b/src/cobalt/loader/fetcher_cache.h
index 37ddf8a..32a4466 100644
--- a/src/cobalt/loader/fetcher_cache.h
+++ b/src/cobalt/loader/fetcher_cache.h
@@ -42,24 +42,21 @@
   void NotifyResourceRequested(const std::string& url);
 
  private:
-  class CachedFetcherHandler;
   class CacheEntry;
-  class CachedFetcher;
 
   std::unique_ptr<Fetcher> CreateCachedFetcher(
       const GURL& url, const Loader::FetcherCreator& real_fetcher_creator,
       Fetcher::Handler* handler);
-  void OnFetchSuccess(CachedFetcherHandler* handler, const std::string& url,
+  void OnFetchSuccess(const std::string& url,
                       const scoped_refptr<net::HttpResponseHeaders>& headers,
-                      const Origin& last_url_origin, std::string* data);
-  void OnFetchFailure(CachedFetcherHandler* handler);
+                      const Origin& last_url_origin,
+                      bool did_fail_from_transient_error, std::string* data);
 
   THREAD_CHECKER(thread_checker_);
 
   const size_t capacity_;
   size_t total_size_ = 0;
 
-  base::hash_set<CachedFetcherHandler*> ongoing_fetchers_;
   net::linked_hash_map<std::string, CacheEntry*> cache_entries_;
 
   base::CVal<base::cval::SizeInBytes, base::CValPublic> memory_size_in_bytes_;
diff --git a/src/cobalt/loader/net_fetcher.cc b/src/cobalt/loader/net_fetcher.cc
index bbb0027..cb084a1 100644
--- a/src/cobalt/loader/net_fetcher.cc
+++ b/src/cobalt/loader/net_fetcher.cc
@@ -160,7 +160,7 @@
     return HandleError(msg).InvalidateThis();
   }
 
-  SetLastUrlOrigin(Origin(source->GetURL()));
+  last_url_origin_ = Origin(source->GetURL());
 }
 
 void NetFetcher::OnURLFetchComplete(const net::URLFetcher* source) {
@@ -189,7 +189,7 @@
         status.error() == net::ERR_CONNECTION_RESET ||
         status.error() == net::ERR_CONNECTION_CLOSED ||
         status.error() == net::ERR_CONNECTION_ABORTED) {
-      SetFailedFromTransientError();
+      did_fail_from_transient_error_ = true;
     }
 
     std::string msg(base::StringPrintf(
diff --git a/src/cobalt/loader/net_fetcher.h b/src/cobalt/loader/net_fetcher.h
index a29f899..2ab6df8 100644
--- a/src/cobalt/loader/net_fetcher.h
+++ b/src/cobalt/loader/net_fetcher.h
@@ -62,6 +62,12 @@
   }
 
  private:
+  // Fetcher interface
+  Origin last_url_origin() const override { return last_url_origin_; }
+  bool did_fail_from_transient_error() const override {
+    return did_fail_from_transient_error_;
+  }
+
   void Start();
 
   // Empty struct to ensure the caller of |HandleError()| knows that |this|
@@ -94,6 +100,13 @@
   // The request's origin.
   Origin origin_;
 
+  // Indicates whether the resource is cross-origin.
+  Origin last_url_origin_;
+
+  // Whether or not the fetcher failed from an error that is considered
+  // transient, indicating that the same fetch may later succeed.
+  bool did_fail_from_transient_error_ = false;
+
   DISALLOW_COPY_AND_ASSIGN(NetFetcher);
 };
 
diff --git a/src/cobalt/media/base/drm_system.cc b/src/cobalt/media/base/drm_system.cc
index ea3888a..3e46a77 100644
--- a/src/cobalt/media/base/drm_system.cc
+++ b/src/cobalt/media/base/drm_system.cc
@@ -26,29 +26,23 @@
 
 DrmSystem::Session::Session(
     DrmSystem* drm_system
-#if SB_HAS(DRM_KEY_STATUSES)
     ,
     SessionUpdateKeyStatusesCallback update_key_statuses_callback
 #if SB_HAS(DRM_SESSION_CLOSED)
     ,
     SessionClosedCallback session_closed_callback
 #endif  // SB_HAS(DRM_SESSION_CLOSED)
-#endif  // SB_HAS(DRM_KEY_STATUSES)
     )
     : drm_system_(drm_system),
-#if SB_HAS(DRM_KEY_STATUSES)
       update_key_statuses_callback_(update_key_statuses_callback),
 #if SB_HAS(DRM_SESSION_CLOSED)
       session_closed_callback_(session_closed_callback),
 #endif  // SB_HAS(DRM_SESSION_CLOSED)
-#endif  // SB_HAS(DRM_KEY_STATUSES)
       closed_(false) {
-#if SB_HAS(DRM_KEY_STATUSES)
   DCHECK(!update_key_statuses_callback_.is_null());
 #if SB_HAS(DRM_SESSION_CLOSED)
   DCHECK(!session_closed_callback_.is_null());
 #endif  // SB_HAS(DRM_SESSION_CLOSED)
-#endif  // SB_HAS(DRM_KEY_STATUSES)
 }
 
 DrmSystem::Session::~Session() {
@@ -94,10 +88,8 @@
     : wrapped_drm_system_(SbDrmCreateSystem(key_system, this,
                                             OnSessionUpdateRequestGeneratedFunc,
                                             OnSessionUpdatedFunc
-#if SB_HAS(DRM_KEY_STATUSES)
                                             ,
                                             OnSessionKeyStatusesChangedFunc
-#endif  // SB_HAS(DRM_KEY_STATUSES)
 #if SB_API_VERSION >= 10
                                             ,
                                             OnServerCertificateUpdatedFunc
@@ -116,25 +108,21 @@
 DrmSystem::~DrmSystem() { SbDrmDestroySystem(wrapped_drm_system_); }
 
 std::unique_ptr<DrmSystem::Session> DrmSystem::CreateSession(
-#if SB_HAS(DRM_KEY_STATUSES)
     SessionUpdateKeyStatusesCallback session_update_key_statuses_callback
 #if SB_HAS(DRM_SESSION_CLOSED)
     ,
     SessionClosedCallback session_closed_callback
 #endif   // SB_HAS(DRM_SESSION_CLOSED)
-#endif   // SB_HAS(DRM_KEY_STATUSES)
     ) {  // NOLINT(whitespace/parens)
   DCHECK(message_loop_->BelongsToCurrentThread());
   return std::unique_ptr<DrmSystem::Session>(new Session(
       this
-#if SB_HAS(DRM_KEY_STATUSES)
       ,
       session_update_key_statuses_callback
 #if SB_HAS(DRM_SESSION_CLOSED)
       ,
       session_closed_callback
 #endif     // SB_HAS(DRM_SESSION_CLOSED)
-#endif     // SB_HAS(DRM_KEY_STATUSES)
       ));  // NOLINT(whitespace/parens)
 }
 
@@ -304,7 +292,6 @@
   ticket_to_session_update_map_.erase(session_update_iterator);
 }
 
-#if SB_HAS(DRM_KEY_STATUSES)
 void DrmSystem::OnSessionKeyStatusChanged(
     const std::string& session_id, const std::vector<std::string>& key_ids,
     const std::vector<SbDrmKeyStatus>& key_statuses) {
@@ -319,7 +306,6 @@
 
   session->update_key_statuses_callback().Run(key_ids, key_statuses);
 }
-#endif  // SB_HAS(DRM_KEY_STATUSES)
 
 #if SB_HAS(DRM_SESSION_CLOSED)
 void DrmSystem::OnSessionClosed(const std::string& session_id) {
@@ -418,7 +404,6 @@
                  status, error_message ? std::string(error_message) : ""));
 }
 
-#if SB_HAS(DRM_KEY_STATUSES)
 // static
 void DrmSystem::OnSessionKeyStatusesChangedFunc(
     SbDrmSystem wrapped_drm_system, void* context, const void* session_id,
@@ -450,7 +435,6 @@
       base::Bind(&DrmSystem::OnSessionKeyStatusChanged, drm_system->weak_this_,
                  session_id_copy, key_ids_copy, key_statuses_copy));
 }
-#endif  // SB_HAS(DRM_KEY_STATUSES)
 
 #if SB_API_VERSION >= 10
 // static
diff --git a/src/cobalt/media/base/drm_system.h b/src/cobalt/media/base/drm_system.h
index 2b01077..819d9c9 100644
--- a/src/cobalt/media/base/drm_system.h
+++ b/src/cobalt/media/base/drm_system.h
@@ -47,11 +47,9 @@
   typedef base::Callback<void(SbDrmStatus status,
                               const std::string& error_message)>
       SessionDidNotUpdateCallback;
-#if SB_HAS(DRM_KEY_STATUSES)
   typedef base::Callback<void(const std::vector<std::string>& key_ids,
                               const std::vector<SbDrmKeyStatus>& key_statuses)>
       SessionUpdateKeyStatusesCallback;
-#endif  // SB_HAS(DRM_KEY_STATUSES)
 #if SB_HAS(DRM_SESSION_CLOSED)
   typedef base::Callback<void()> SessionClosedCallback;
 #endif  // SB_HAS(DRM_SESSION_CLOSED)
@@ -102,10 +100,8 @@
    private:
     // Private API for |DrmSystem|.
     Session(DrmSystem* drm_system
-#if SB_HAS(DRM_KEY_STATUSES)
             ,
             SessionUpdateKeyStatusesCallback update_key_statuses_callback
-#endif  // SB_HAS(DRM_KEY_STATUSES)
 #if SB_HAS(DRM_SESSION_CLOSED)
             ,
             SessionClosedCallback session_closed_callback
@@ -116,12 +112,10 @@
     update_request_generated_callback() const {
       return update_request_generated_callback_;
     }
-#if SB_HAS(DRM_KEY_STATUSES)
     const SessionUpdateKeyStatusesCallback& update_key_statuses_callback()
         const {
       return update_key_statuses_callback_;
     }
-#endif  // SB_HAS(DRM_KEY_STATUSES)
 #if SB_HAS(DRM_SESSION_CLOSED)
     const SessionClosedCallback& session_closed_callback() const {
       return session_closed_callback_;
@@ -129,9 +123,7 @@
 #endif  // SB_HAS(DRM_SESSION_CLOSED)
 
     DrmSystem* const drm_system_;
-#if SB_HAS(DRM_KEY_STATUSES)
     SessionUpdateKeyStatusesCallback update_key_statuses_callback_;
-#endif  // SB_HAS(DRM_KEY_STATUSES)
 #if SB_HAS(DRM_SESSION_CLOSED)
     SessionClosedCallback session_closed_callback_;
 #endif  // SB_HAS(DRM_SESSION_CLOSED)
@@ -151,9 +143,7 @@
   SbDrmSystem wrapped_drm_system() { return wrapped_drm_system_; }
 
   std::unique_ptr<Session> CreateSession(
-#if SB_HAS(DRM_KEY_STATUSES)
       SessionUpdateKeyStatusesCallback session_update_key_statuses_callback
-#endif  // SB_HAS(DRM_KEY_STATUSES)
 #if SB_HAS(DRM_SESSION_CLOSED)
       ,
       SessionClosedCallback session_closed_callback
@@ -216,11 +206,9 @@
       std::unique_ptr<uint8[]> message, int message_size);
   void OnSessionUpdated(int ticket, SbDrmStatus status,
                         const std::string& error_message);
-#if SB_HAS(DRM_KEY_STATUSES)
   void OnSessionKeyStatusChanged(
       const std::string& session_id, const std::vector<std::string>& key_ids,
       const std::vector<SbDrmKeyStatus>& key_statuses);
-#endif  // SB_HAS(DRM_KEY_STATUSES)
 #if SB_API_VERSION >= 10
   void OnServerCertificateUpdated(int ticket, SbDrmStatus status,
                                   const std::string& error_message);
@@ -253,12 +241,10 @@
                                    int session_id_length, bool succeeded);
 #endif  // SB_API_VERSION >= 10
 
-#if SB_HAS(DRM_KEY_STATUSES)
   static void OnSessionKeyStatusesChangedFunc(
       SbDrmSystem wrapped_drm_system, void* context, const void* session_id,
       int session_id_size, int number_of_keys, const SbDrmKeyId* key_ids,
       const SbDrmKeyStatus* key_statuses);
-#endif  // SB_HAS(DRM_KEY_STATUSES)
 
 #if SB_HAS(DRM_SESSION_CLOSED)
   static void OnSessionClosedFunc(SbDrmSystem wrapped_drm_system, void* context,
diff --git a/src/cobalt/media/base/starboard_utils.cc b/src/cobalt/media/base/starboard_utils.cc
index 60c6109..9926a4e 100644
--- a/src/cobalt/media/base/starboard_utils.cc
+++ b/src/cobalt/media/base/starboard_utils.cc
@@ -100,7 +100,6 @@
   audio_sample_info.block_alignment = 4;
   audio_sample_info.bits_per_sample = audio_decoder_config.bits_per_channel();
 
-#if SB_HAS(AUDIO_SPECIFIC_CONFIG_AS_POINTER)
   audio_sample_info.audio_specific_config_size =
       static_cast<uint16_t>(audio_decoder_config.extra_data().size());
   if (audio_sample_info.audio_specific_config_size == 0) {
@@ -109,16 +108,6 @@
     audio_sample_info.audio_specific_config =
         &audio_decoder_config.extra_data()[0];
   }
-#else   // SB_HAS(AUDIO_SPECIFIC_CONFIG_AS_POINTER)
-  audio_sample_info.audio_specific_config_size = static_cast<uint16_t>(
-      std::min(audio_decoder_config.extra_data().size(),
-               sizeof(audio_sample_info.audio_specific_config)));
-  if (audio_sample_info.audio_specific_config_size > 0) {
-    SbMemoryCopy(audio_sample_info.audio_specific_config,
-                 &audio_decoder_config.extra_data()[0],
-                 audio_sample_info.audio_specific_config_size);
-  }
-#endif  // SB_HAS(AUDIO_SPECIFIC_CONFIG_AS_POINTER)
 
   return audio_sample_info;
 }
diff --git a/src/cobalt/media/formats/mp4/mp4_stream_parser.cc b/src/cobalt/media/formats/mp4/mp4_stream_parser.cc
index 8271529..e4d7754 100644
--- a/src/cobalt/media/formats/mp4/mp4_stream_parser.cc
+++ b/src/cobalt/media/formats/mp4/mp4_stream_parser.cc
@@ -203,7 +203,7 @@
     const SampleDescription& samp_descr =
         track->media.information.sample_table.description;
 
-    // TODO(strobe): When codec reconfigurations are supported, detect and send
+    // TODO: When codec reconfigurations are supported, detect and send
     // a codec reconfiguration for fragments using a sample description index
     // different from the previous one
     size_t desc_idx = 0;
@@ -337,7 +337,7 @@
         return false;
       }
 
-      // TODO(strobe): Recover correct crop box
+      // TODO: Recover correct crop box
       gfx::Size coded_size(entry.width, entry.height);
       gfx::Rect visible_rect(coded_size);
 
@@ -459,7 +459,7 @@
 
 void MP4StreamParser::OnEncryptedMediaInitData(
     const std::vector<ProtectionSystemSpecificHeader>& headers) {
-  // TODO(strobe): ensure that the value of init_data (all PSSH headers
+  // TODO: ensure that the value of init_data (all PSSH headers
   // concatenated in arbitrary order) matches the EME spec.
   // See https://www.w3.org/Bugs/Public/show_bug.cgi?id=17673.
   size_t total_size = 0;
diff --git a/src/cobalt/media/media_module.cc b/src/cobalt/media/media_module.cc
index 2230b68..e476a6f 100644
--- a/src/cobalt/media/media_module.cc
+++ b/src/cobalt/media/media_module.cc
@@ -111,23 +111,6 @@
   std::vector<std::string> disabled_media_codecs_;
 };
 
-void RunClosureAndSignal(const base::Closure& closure,
-                         base::WaitableEvent* event) {
-  closure.Run();
-  event->Signal();
-}
-
-void RunClosureOnMessageLoopAndWait(
-    const scoped_refptr<base::SingleThreadTaskRunner>& task_runner,
-    const base::Closure& closure) {
-  base::WaitableEvent waitable_event(
-      base::WaitableEvent::ResetPolicy::MANUAL,
-      base::WaitableEvent::InitialState::NOT_SIGNALED);
-  task_runner->PostTask(
-      FROM_HERE, base::Bind(&RunClosureAndSignal, closure, &waitable_event));
-  waitable_event.Wait();
-}
-
 }  // namespace
 
 std::unique_ptr<WebMediaPlayer> MediaModule::CreateWebMediaPlayer(
@@ -146,33 +129,7 @@
 }
 
 void MediaModule::Suspend() {
-  RunClosureOnMessageLoopAndWait(
-      task_runner_,
-      base::Bind(&MediaModule::SuspendTask, base::Unretained(this)));
-  resource_provider_ = NULL;
-}
-
-void MediaModule::Resume(render_tree::ResourceProvider* resource_provider) {
-  resource_provider_ = resource_provider;
-  RunClosureOnMessageLoopAndWait(
-      task_runner_,
-      base::Bind(&MediaModule::ResumeTask, base::Unretained(this)));
-}
-
-void MediaModule::RegisterPlayer(WebMediaPlayer* player) {
-  RunClosureOnMessageLoopAndWait(task_runner_,
-                                 base::Bind(&MediaModule::RegisterPlayerTask,
-                                            base::Unretained(this), player));
-}
-
-void MediaModule::UnregisterPlayer(WebMediaPlayer* player) {
-  RunClosureOnMessageLoopAndWait(task_runner_,
-                                 base::Bind(&MediaModule::UnregisterPlayerTask,
-                                            base::Unretained(this), player));
-}
-
-void MediaModule::SuspendTask() {
-  DCHECK(task_runner_->BelongsToCurrentThread());
+  starboard::ScopedLock scoped_lock(players_lock_);
 
   suspended_ = true;
 
@@ -183,10 +140,14 @@
       iter->first->Suspend();
     }
   }
+
+  resource_provider_ = NULL;
 }
 
-void MediaModule::ResumeTask() {
-  DCHECK(task_runner_->BelongsToCurrentThread());
+void MediaModule::Resume(render_tree::ResourceProvider* resource_provider) {
+  starboard::ScopedLock scoped_lock(players_lock_);
+
+  resource_provider_ = resource_provider;
 
   for (Players::iterator iter = players_.begin(); iter != players_.end();
        ++iter) {
@@ -199,8 +160,8 @@
   suspended_ = false;
 }
 
-void MediaModule::RegisterPlayerTask(WebMediaPlayer* player) {
-  DCHECK(task_runner_->BelongsToCurrentThread());
+void MediaModule::RegisterPlayer(WebMediaPlayer* player) {
+  starboard::ScopedLock scoped_lock(players_lock_);
 
   DCHECK(players_.find(player) == players_.end());
   players_.insert(std::make_pair(player, false));
@@ -210,13 +171,23 @@
   }
 }
 
-void MediaModule::UnregisterPlayerTask(WebMediaPlayer* player) {
-  DCHECK(task_runner_->BelongsToCurrentThread());
+void MediaModule::UnregisterPlayer(WebMediaPlayer* player) {
+  starboard::ScopedLock scoped_lock(players_lock_);
 
   DCHECK(players_.find(player) != players_.end());
   players_.erase(players_.find(player));
 }
 
+void MediaModule::EnumerateWebMediaPlayers(
+    const EnumeratePlayersCB& enumerate_callback) const {
+  starboard::ScopedLock scoped_lock(players_lock_);
+
+  for (Players::const_iterator iter = players_.begin(); iter != players_.end();
+       ++iter) {
+    enumerate_callback.Run(iter->first);
+  }
+}
+
 std::unique_ptr<CanPlayTypeHandler> MediaModule::CreateCanPlayTypeHandler() {
   return std::unique_ptr<CanPlayTypeHandler>(new CanPlayTypeHandlerStarboard);
 }
diff --git a/src/cobalt/media/media_module.h b/src/cobalt/media/media_module.h
index 7f06370..b3ee10d 100644
--- a/src/cobalt/media/media_module.h
+++ b/src/cobalt/media/media_module.h
@@ -23,9 +23,7 @@
 #include "base/compiler_specific.h"
 #include "base/logging.h"
 #include "base/memory/ref_counted.h"
-#include "base/message_loop/message_loop.h"
 #include "base/optional.h"
-#include "base/threading/thread.h"
 #include "cobalt/math/size.h"
 #include "cobalt/media/can_play_type_handler.h"
 #include "cobalt/media/decoder_buffer_allocator.h"
@@ -35,6 +33,7 @@
 #include "cobalt/render_tree/image.h"
 #include "cobalt/render_tree/resource_provider.h"
 #include "cobalt/system_window/system_window.h"
+#include "starboard/common/mutex.h"
 
 namespace cobalt {
 namespace media {
@@ -57,13 +56,9 @@
   MediaModule(system_window::SystemWindow* system_window,
               render_tree::ResourceProvider* resource_provider,
               const Options& options = Options())
-      : thread_("media_module"),
-        options_(options),
+      : options_(options),
         system_window_(system_window),
-        resource_provider_(resource_provider) {
-    thread_.Start();
-    task_runner_ = thread_.task_runner();
-  }
+        resource_provider_(resource_provider) {}
 
   // Returns true when the setting is set successfully or if the setting has
   // already been set to the expected value.  Returns false when the setting is
@@ -77,6 +72,8 @@
   // WebMediaPlayerFactory methods
   std::unique_ptr<WebMediaPlayer> CreateWebMediaPlayer(
       WebMediaPlayerClient* client) override;
+  void EnumerateWebMediaPlayers(
+      const EnumeratePlayersCB& enumerate_callback) const override;
 
   void Suspend();
   void Resume(render_tree::ResourceProvider* resource_provider);
@@ -90,10 +87,6 @@
  private:
   void RegisterDebugState(WebMediaPlayer* player);
   void DeregisterDebugState();
-  void SuspendTask();
-  void ResumeTask();
-  void RegisterPlayerTask(WebMediaPlayer* player);
-  void UnregisterPlayerTask(WebMediaPlayer* player);
 
   SbDecodeTargetGraphicsContextProvider*
   GetSbDecodeTargetGraphicsContextProvider() {
@@ -108,14 +101,13 @@
   // paused by us.
   typedef std::map<WebMediaPlayer*, bool> Players;
 
-  // The thread that |players_| is accessed from,
-  base::Thread thread_;
-  scoped_refptr<base::SingleThreadTaskRunner> task_runner_;
-
   const Options options_;
   system_window::SystemWindow* system_window_;
   cobalt::render_tree::ResourceProvider* resource_provider_;
 
+  // Protect access to the list of players.
+  starboard::Mutex players_lock_;
+
   Players players_;
   bool suspended_ = false;
 
diff --git a/src/cobalt/media/player/web_media_player.h b/src/cobalt/media/player/web_media_player.h
index fd02a83..79ce44b 100644
--- a/src/cobalt/media/player/web_media_player.h
+++ b/src/cobalt/media/player/web_media_player.h
@@ -132,6 +132,7 @@
   virtual base::Time GetStartDate() const = 0;
 #endif  // SB_HAS(PLAYER_WITH_URL)
   virtual float GetCurrentTime() const = 0;
+  virtual float GetPlaybackRate() const = 0;
 
   // Get rate of loading the resource.
   virtual int GetDataRate() const = 0;
diff --git a/src/cobalt/media/player/web_media_player_impl.cc b/src/cobalt/media/player/web_media_player_impl.cc
index a72957c..6185a52 100644
--- a/src/cobalt/media/player/web_media_player_impl.cc
+++ b/src/cobalt/media/player/web_media_player_impl.cc
@@ -483,6 +483,14 @@
   return static_cast<float>(pipeline_->GetMediaTime().InSecondsF());
 }
 
+float WebMediaPlayerImpl::GetPlaybackRate() const {
+  DCHECK_EQ(main_loop_, base::MessageLoop::current());
+  if (state_.paused) {
+    return 0.0f;
+  }
+  return state_.playback_rate;
+}
+
 int WebMediaPlayerImpl::GetDataRate() const {
   DCHECK_EQ(main_loop_, base::MessageLoop::current());
 
diff --git a/src/cobalt/media/player/web_media_player_impl.h b/src/cobalt/media/player/web_media_player_impl.h
index 60ce328..55a00c9 100644
--- a/src/cobalt/media/player/web_media_player_impl.h
+++ b/src/cobalt/media/player/web_media_player_impl.h
@@ -157,6 +157,7 @@
   base::Time GetStartDate() const override;
 #endif  // SB_HAS(PLAYER_WITH_URL)
   float GetCurrentTime() const override;
+  float GetPlaybackRate() const override;
 
   // Get rate of loading the resource.
   int32 GetDataRate() const override;
diff --git a/src/cobalt/media/sandbox/web_media_player_sandbox.cc b/src/cobalt/media/sandbox/web_media_player_sandbox.cc
index 079cee5..ed0ca18 100644
--- a/src/cobalt/media/sandbox/web_media_player_sandbox.cc
+++ b/src/cobalt/media/sandbox/web_media_player_sandbox.cc
@@ -14,6 +14,7 @@
 
 #include <algorithm>
 #include <memory>
+#include <sstream>
 #include <string>
 #include <vector>
 
@@ -31,6 +32,7 @@
 #include "cobalt/render_tree/image.h"
 #include "starboard/event.h"
 #include "starboard/file.h"
+#include "starboard/log.h"
 #include "starboard/system.h"
 
 namespace cobalt {
@@ -52,25 +54,40 @@
   const char kExampleProgressiveUrl[] =
       "https://storage.googleapis.com/yt-cobalt-media-element-demo/"
       "progressive.mp4";
-  LOG(ERROR) << "\n\n\n"  // Extra empty lines to separate from other messages
-             << "Usage: " << executable_file_name
-             << " [OPTIONS] <adaptive audio file path>\n"
-             << "   or: " << executable_file_name
-             << " [OPTIONS] <adaptive video file path>\n"
-             << "   or: " << executable_file_name
-             << " [OPTIONS] <adaptive audio file path> "
-             << " <adaptive video file path>\n"
-             << "   or: " << executable_file_name
-             << " [OPTIONS] <progressive video path or url>\n"
-             << "Play adaptive audio/video or progressive video\n\n"
-             << "For example:\n"
-             << executable_file_name << " " << kExampleAdaptiveAudioPathName
-             << "\n"
-             << executable_file_name << " " << kExampleAdaptiveVideoPathName
-             << "\n"
-             << executable_file_name << " " << kExampleAdaptiveAudioPathName
-             << " " << kExampleAdaptiveVideoPathName << "\n"
-             << executable_file_name << " " << kExampleProgressiveUrl << "\n\n";
+  std::stringstream ss;
+  // Head
+  ss << "\n\n"
+     << "======================== " << executable_file_name
+     << " ========================\n";
+
+  // Basic usage
+  ss << "Usage: " << executable_file_name
+     << " [OPTIONS] <adaptive audio file path>\n"
+     << "   or: " << executable_file_name
+     << " [OPTIONS] <adaptive video file path>\n"
+     << "   or: " << executable_file_name
+     << " [OPTIONS] <adaptive audio file path> "
+     << " <adaptive video file path>\n"
+     << "   or: " << executable_file_name
+     << " [OPTIONS] <progressive video path or url>\n"
+     << "Play adaptive audio/video or progressive video\n\n";
+
+  // Options
+  ss << "OPTIONS:\n"
+     << "  --dump_video_data: Dump video data into .dmp files\n"
+     << "  --use_stub_audio_decoder: Use stub audio decoder to play the video\n"
+     << "  --use_stub_audio_sink: Use stub audio sink to play the video\n"
+     << "  --use_stub_video_decoder: Use stub video decoder to play the video\n"
+     << "\n";
+
+  // Usage examples
+  ss << "For example:\n  " << executable_file_name << " --dump_video_data "
+     << kExampleAdaptiveAudioPathName << "\n  " << executable_file_name << " "
+     << kExampleAdaptiveVideoPathName << "\n  " << executable_file_name << " "
+     << kExampleAdaptiveAudioPathName << " " << kExampleAdaptiveVideoPathName
+     << "\n  " << executable_file_name << " " << kExampleProgressiveUrl
+     << "\n\n";
+  SbLogRaw(ss.str().c_str());
 }
 
 std::string MakeCodecParameter(const std::string& string) { return string; }
@@ -373,6 +390,11 @@
     case kSbEventTypeStart: {
       SbEventStartData* data = static_cast<SbEventStartData*>(event->data);
       DCHECK(!s_application);
+      if (data->argument_count == 1) {
+        cobalt::media::sandbox::PrintUsage(data->argument_values[0]);
+        SbSystemRequestStop(0);
+        return;
+      }
       s_application =
           new Application(data->argument_count, data->argument_values);
       break;
diff --git a/src/cobalt/media/web_media_player_factory.h b/src/cobalt/media/web_media_player_factory.h
index c05a924..9b9a37f 100644
--- a/src/cobalt/media/web_media_player_factory.h
+++ b/src/cobalt/media/web_media_player_factory.h
@@ -17,6 +17,7 @@
 
 #include <memory>
 
+#include "base/callback.h"
 #include "cobalt/media/player/web_media_player.h"
 
 namespace cobalt {
@@ -24,9 +25,15 @@
 
 class WebMediaPlayerFactory {
  public:
+  typedef base::RepeatingCallback<void(const WebMediaPlayer*)>
+      EnumeratePlayersCB;
+
   virtual std::unique_ptr<WebMediaPlayer> CreateWebMediaPlayer(
       WebMediaPlayerClient* client) = 0;
 
+  virtual void EnumerateWebMediaPlayers(
+      const EnumeratePlayersCB& enumerate_callback) const = 0;
+
  protected:
   WebMediaPlayerFactory() {}
   ~WebMediaPlayerFactory() {}
diff --git a/src/cobalt/media_session/media_session.cc b/src/cobalt/media_session/media_session.cc
index c615a35..b9d04a0 100644
--- a/src/cobalt/media_session/media_session.cc
+++ b/src/cobalt/media_session/media_session.cc
@@ -36,19 +36,19 @@
 
 void MediaSession::set_metadata(scoped_refptr<MediaMetadata> value) {
   metadata_ = value;
-  MaybeQueueChangeTask();
+  MaybeQueueChangeTask(base::TimeDelta());
 }
 
 void MediaSession::set_playback_state(
     MediaSessionPlaybackState playback_state) {
   playback_state_ = playback_state;
-  MaybeQueueChangeTask();
+  MaybeQueueChangeTask(base::TimeDelta());
 }
 
 void MediaSession::SetActionHandler(
     MediaSessionAction action, const MediaSessionActionHandlerHolder& handler) {
   // See algorithm https://wicg.github.io/mediasession/#actions-model
-  DCHECK_EQ(base::MessageLoop::current()->task_runner(), task_runner_);
+  DCHECK(task_runner_->BelongsToCurrentThread());
   ActionMap::iterator it = action_map_.find(action);
 
   if (it != action_map_.end()) {
@@ -59,32 +59,41 @@
     action_map_[action] = new MediaSessionActionHandlerReference(this, handler);
   }
 
-  MaybeQueueChangeTask();
+  MaybeQueueChangeTask(base::TimeDelta());
 }
 
 void MediaSession::SetPositionState(base::Optional<MediaPositionState> state) {
   last_position_updated_time_ = GetMonotonicNow();
   media_position_state_ = state;
-  MaybeQueueChangeTask();
+  MaybeQueueChangeTask(base::TimeDelta());
 }
 
 void MediaSession::TraceMembers(script::Tracer* tracer) {
   tracer->Trace(metadata_.get());
 }
 
-void MediaSession::MaybeQueueChangeTask() {
-  DCHECK_EQ(base::MessageLoop::current()->task_runner(), task_runner_);
+bool MediaSession::IsChangeTaskQueuedForTesting() const {
+  DCHECK(task_runner_->BelongsToCurrentThread());
+  return is_change_task_queued_;
+}
+
+void MediaSession::MaybeQueueChangeTask(base::TimeDelta delay) {
+  DCHECK(task_runner_->BelongsToCurrentThread());
   if (is_change_task_queued_) {
     return;
   }
   is_change_task_queued_ = true;
-  task_runner_->PostTask(
-      FROM_HERE, base::Bind(&MediaSession::OnChanged, base::Unretained(this)));
+  task_runner_->PostDelayedTask(
+      FROM_HERE,
+      base::Bind(&MediaSession::OnChanged, this),
+      delay);
 }
 
 void MediaSession::OnChanged() {
   is_change_task_queued_ = false;
-  media_session_client_->UpdateMediaSessionState();
+  if (media_session_client_) {
+    media_session_client_->UpdateMediaSessionState();
+  }
 }
 
 }  // namespace media_session
diff --git a/src/cobalt/media_session/media_session.gyp b/src/cobalt/media_session/media_session.gyp
index 242f152..da0d96b 100644
--- a/src/cobalt/media_session/media_session.gyp
+++ b/src/cobalt/media_session/media_session.gyp
@@ -38,7 +38,8 @@
       ],
       'dependencies': [
         '<(DEPTH)/cobalt/base/base.gyp:base',
-        '<(DEPTH)/cobalt/browser/browser_bindings_gen.gyp:generated_types'
+        '<(DEPTH)/cobalt/browser/browser_bindings_gen.gyp:generated_types',
+        '<(DEPTH)/cobalt/math/math.gyp:math',
       ],
       # This target doesn't generate any headers, but it exposes generated
       # header files (for idl dictionaries) through this module's public header
diff --git a/src/cobalt/media_session/media_session.h b/src/cobalt/media_session/media_session.h
index b08d977..6c1db11 100644
--- a/src/cobalt/media_session/media_session.h
+++ b/src/cobalt/media_session/media_session.h
@@ -77,8 +77,12 @@
   DEFINE_WRAPPABLE_TYPE(MediaSession);
   void TraceMembers(script::Tracer* tracer) override;
 
+  // Check whether a change task has been queued. Should only be called by
+  // unit tests.
+  bool IsChangeTaskQueuedForTesting() const;
+
  private:
-  void MaybeQueueChangeTask();
+  void MaybeQueueChangeTask(base::TimeDelta delay);
   void OnChanged();
 
   // Returns a time representing right now - may be overridden for testing.
diff --git a/src/cobalt/media_session/media_session_client.cc b/src/cobalt/media_session/media_session_client.cc
index 96376c2..c3c6fe8 100644
--- a/src/cobalt/media_session/media_session_client.cc
+++ b/src/cobalt/media_session/media_session_client.cc
@@ -15,11 +15,66 @@
 #include "cobalt/media_session/media_session_client.h"
 
 #include <algorithm>
+#include <cmath>
 #include <memory>
 
+#include "starboard/time.h"
+
 namespace cobalt {
 namespace media_session {
 
+namespace {
+
+// Delay to re-query position state after an action has been invoked.
+const base::TimeDelta kUpdateDelay = base::TimeDelta::FromMilliseconds(250);
+
+// Guess the media position state for the media session.
+void GuessMediaPositionState(MediaSessionState* session_state,
+    const media::WebMediaPlayer** guess_player,
+    const media::WebMediaPlayer* current_player) {
+  // Assume the player with the biggest video size is the one controlled by the
+  // media session. This isn't perfect, so it's best that the web app set the
+  // media position state explicitly.
+  if (*guess_player == nullptr ||
+      (*guess_player)->GetNaturalSize().GetArea() <
+      current_player->GetNaturalSize().GetArea()) {
+    *guess_player = current_player;
+
+    MediaPositionState position_state;
+    float duration = (*guess_player)->GetDuration();
+    if (std::isfinite(duration)) {
+      position_state.set_duration(duration);
+    } else if (std::isinf(duration)) {
+      position_state.set_duration(kSbTimeMax);
+    } else {
+      position_state.set_duration(0.0);
+    }
+    position_state.set_playback_rate((*guess_player)->GetPlaybackRate());
+    position_state.set_position((*guess_player)->GetCurrentTime());
+
+    *session_state = MediaSessionState(
+        session_state->metadata(),
+        SbTimeGetMonotonicNow(),
+        position_state,
+        session_state->actual_playback_state(),
+        session_state->available_actions());
+  }
+}
+
+}  // namespace
+
+MediaSessionClient::~MediaSessionClient() {
+  DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
+  // Prevent any outstanding MediaSession::OnChanged tasks from calling this.
+  media_session_->media_session_client_ = nullptr;
+}
+
+void MediaSessionClient::SetMediaPlayerFactory(
+    const media::WebMediaPlayerFactory* factory) {
+  DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
+  media_player_factory_ = factory;
+}
+
 MediaSessionPlaybackState MediaSessionClient::ComputeActualPlaybackState()
     const {
   DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
@@ -76,6 +131,13 @@
       result[kMediaSessionActionPlay] = false;
       break;
     case kMediaSessionPlaybackStateNone:
+      // Not defined in the spec: disable Seekbackward, Seekforward, SeekTo, &
+      // Stop when no media is playing.
+      result[kMediaSessionActionSeekbackward] = false;
+      result[kMediaSessionActionSeekforward] = false;
+      result[kMediaSessionActionSeekto] = false;
+      result[kMediaSessionActionStop] = false;
+    // Fall-through intended (None case falls through to Paused case).
     case kMediaSessionPlaybackStatePaused:
       // "Otherwise, remove pause from available actions."
       result[kMediaSessionActionPause] = false;
@@ -134,26 +196,11 @@
   }
 
   it->second->value().Run(*details);
-}
 
-MediaSessionState MediaSessionClient::GetMediaSessionState() {
-  MediaSessionState session_state;
-  GetMediaSessionStateInternal(&session_state);
-  return session_state;
-}
-
-void MediaSessionClient::GetMediaSessionStateInternal(
-    MediaSessionState* session_state) {
-  DCHECK(media_session_->task_runner_);
-  if (!media_session_->task_runner_->BelongsToCurrentThread()) {
-    media_session_->task_runner_->PostBlockingTask(
-        FROM_HERE,
-        base::Bind(&MediaSessionClient::GetMediaSessionStateInternal,
-                   base::Unretained(this), base::Unretained(session_state)));
-    return;
+  // Queue a session update to reflect the effects of the action.
+  if (!media_session_->media_position_state_) {
+    media_session_->MaybeQueueChangeTask(kUpdateDelay);
   }
-
-  *session_state = session_state_;
 }
 
 void MediaSessionClient::UpdateMediaSessionState() {
@@ -168,12 +215,30 @@
     metadata->set_album(session_metadata->album());
     metadata->set_artwork(session_metadata->artwork());
   }
+
   session_state_ = MediaSessionState(
       metadata,
       media_session_->last_position_updated_time_,
       media_session_->media_position_state_,
       ComputeActualPlaybackState(),
       ComputeAvailableActions());
+
+  // Compute the media position state if it's not set in the media session.
+  if (!media_session_->media_position_state_ && media_player_factory_) {
+    const media::WebMediaPlayer* player = nullptr;
+    media_player_factory_->EnumerateWebMediaPlayers(
+        base::BindRepeating(&GuessMediaPositionState,
+                            &session_state_, &player));
+
+    // The media duration may be reported as 0 when seeking. Re-query the
+    // media session state after a delay.
+    if (session_state_.actual_playback_state() ==
+            kMediaSessionPlaybackStatePlaying &&
+        session_state_.duration() == 0) {
+      media_session_->MaybeQueueChangeTask(kUpdateDelay);
+    }
+  }
+
   OnMediaSessionStateChanged(session_state_);
 }
 
diff --git a/src/cobalt/media_session/media_session_client.h b/src/cobalt/media_session/media_session_client.h
index 77118d9..baf5277 100644
--- a/src/cobalt/media_session/media_session_client.h
+++ b/src/cobalt/media_session/media_session_client.h
@@ -19,6 +19,7 @@
 #include <memory>
 
 #include "base/threading/thread_checker.h"
+#include "cobalt/media/web_media_player_factory.h"
 #include "cobalt/media_session/media_session.h"
 #include "cobalt/media_session/media_session_action_details.h"
 #include "cobalt/media_session/media_session_state.h"
@@ -40,7 +41,7 @@
       : media_session_(media_session),
         platform_playback_state_(kMediaSessionPlaybackStateNone) {}
 
-  virtual ~MediaSessionClient() {}
+  virtual ~MediaSessionClient();
 
   // Creates platform-specific instance.
   static std::unique_ptr<MediaSessionClient> Create();
@@ -48,6 +49,12 @@
   // Retrieves the singleton MediaSession associated with this client.
   scoped_refptr<MediaSession>& GetMediaSession() { return media_session_; }
 
+  // The web app should set the MediaPositionState of the MediaSession object.
+  // However, if that is not done, then query the web media player factory to
+  // guess which player is associated with the media session to get the media
+  // position state. The player factory must outlive the media session client.
+  void SetMediaPlayerFactory(const media::WebMediaPlayerFactory* factory);
+
   // Sets the platform's current playback state. This is used to compute
   // the "guessed playback state"
   // https://wicg.github.io/mediasession/#guessed-playback-state
@@ -69,9 +76,6 @@
     InvokeActionInternal(std::move(details));
   }
 
-  // Returns a copy of the current MediaSessionState.
-  MediaSessionState GetMediaSessionState();
-
   // Invoked on the browser thread when any metadata, position state, playback
   // state, or supported session actions change.
   virtual void OnMediaSessionStateChanged(
@@ -82,9 +86,9 @@
   scoped_refptr<MediaSession> media_session_;
   MediaSessionState session_state_;
   MediaSessionPlaybackState platform_playback_state_;
+  const media::WebMediaPlayerFactory* media_player_factory_ = nullptr;
 
   void UpdateMediaSessionState();
-  void GetMediaSessionStateInternal(MediaSessionState* session_state);
   MediaSessionPlaybackState ComputeActualPlaybackState() const;
   MediaSessionState::AvailableActionsSet ComputeAvailableActions() const;
 
diff --git a/src/cobalt/media_session/media_session_state.h b/src/cobalt/media_session/media_session_state.h
index e567f60..65148b4 100644
--- a/src/cobalt/media_session/media_session_state.h
+++ b/src/cobalt/media_session/media_session_state.h
@@ -53,6 +53,9 @@
     return metadata_;
   }
 
+  // Returns whether media position state was specified.
+  bool has_position_state() const { return last_position_updated_time_ != 0; }
+
   // Returns the position of the current playback.
   // https://wicg.github.io/mediasession/#current-playback-position
   // Returns the position
diff --git a/src/cobalt/media_session/media_session_test.cc b/src/cobalt/media_session/media_session_test.cc
index 63808c6..687167a 100644
--- a/src/cobalt/media_session/media_session_test.cc
+++ b/src/cobalt/media_session/media_session_test.cc
@@ -25,6 +25,8 @@
 #include "cobalt/script/script_value.h"
 #include "cobalt/script/testing/fake_script_value.h"
 #include "cobalt/script/wrappable.h"
+#include "starboard/thread.h"
+#include "starboard/time.h"
 #include "testing/gmock/include/gmock/gmock.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
@@ -62,7 +64,25 @@
   MockMediaSession& mock_session() {
     return static_cast<MockMediaSession&>(*GetMediaSession().get());
   }
-  MOCK_METHOD1(OnMediaSessionStateChanged, void(const MediaSessionState&));
+  void OnMediaSessionStateChanged(const MediaSessionState& session_state)
+      override {
+    session_state_ = session_state;
+    ++session_change_count_;
+  }
+  void WaitForSessionStateChange() {
+    size_t current_change_count = session_change_count_;
+    while (GetMediaSession()->IsChangeTaskQueuedForTesting()) {
+      base::RunLoop().RunUntilIdle();
+      if (current_change_count != session_change_count_) {
+        break;
+      }
+      SbThreadSleep(kSbTimeMillisecond);
+    }
+  }
+  MediaSessionState GetMediaSessionState() const { return session_state_; }
+  size_t GetMediaSessionChangeCount() const { return session_change_count_; }
+  MediaSessionState session_state_;
+  size_t session_change_count_ = 0;
 };
 
 MATCHER_P(SeekTime, time, "") {
@@ -79,99 +99,86 @@
 
 TEST(MediaSessionTest, MediaSessionTest) {
   base::MessageLoop message_loop(base::MessageLoop::TYPE_DEFAULT);
-  base::RunLoop run_loop;
 
   MockMediaSessionClient client;
-
-  ON_CALL(client, OnMediaSessionStateChanged(_))
-      .WillByDefault(InvokeWithoutArgs(&run_loop, &base::RunLoop::Quit));
-  EXPECT_CALL(client, OnMediaSessionStateChanged(_)).Times(1);
-
   scoped_refptr<MediaSession> session = client.GetMediaSession();
 
-  base::RunLoop().RunUntilIdle();
-  EXPECT_EQ(kMediaSessionPlaybackStateNone,
-            client.GetMediaSessionState().actual_playback_state());
+  EXPECT_EQ(kMediaSessionPlaybackStateNone, session->playback_state());
 
   session->set_playback_state(kMediaSessionPlaybackStatePlaying);
 
-  base::RunLoop().RunUntilIdle();
+  client.WaitForSessionStateChange();
   EXPECT_EQ(kMediaSessionPlaybackStatePlaying,
             client.GetMediaSessionState().actual_playback_state());
 
-  run_loop.Run();
+  EXPECT_EQ(client.GetMediaSessionChangeCount(), 1);
 }
 
 TEST(MediaSessionTest, ActualPlaybackState) {
   base::MessageLoop message_loop(base::MessageLoop::TYPE_DEFAULT);
-  base::RunLoop run_loop;
 
   MockMediaSessionClient client;
-
-  ON_CALL(client, OnMediaSessionStateChanged(_))
-      .WillByDefault(InvokeWithoutArgs(&run_loop, &base::RunLoop::Quit));
-  EXPECT_CALL(client, OnMediaSessionStateChanged(_)).Times(AtLeast(2));
-
   scoped_refptr<MediaSession> session = client.GetMediaSession();
 
-  base::RunLoop().RunUntilIdle();
+  // Trigger a session state change without impacting playback state.
+  session->set_metadata(new MediaMetadata);
+  client.WaitForSessionStateChange();
+  EXPECT_EQ(client.GetMediaSessionChangeCount(), 1);
+
   EXPECT_EQ(kMediaSessionPlaybackStateNone,
             client.GetMediaSessionState().actual_playback_state());
 
   client.UpdatePlatformPlaybackState(kMediaSessionPlaybackStatePlaying);
 
-  base::RunLoop().RunUntilIdle();
+  client.WaitForSessionStateChange();
   EXPECT_EQ(kMediaSessionPlaybackStatePlaying,
             client.GetMediaSessionState().actual_playback_state());
 
   session->set_playback_state(kMediaSessionPlaybackStatePlaying);
 
-  base::RunLoop().RunUntilIdle();
+  client.WaitForSessionStateChange();
   EXPECT_EQ(kMediaSessionPlaybackStatePlaying,
             client.GetMediaSessionState().actual_playback_state());
 
   session->set_playback_state(kMediaSessionPlaybackStatePaused);
 
-  base::RunLoop().RunUntilIdle();
+  client.WaitForSessionStateChange();
   EXPECT_EQ(kMediaSessionPlaybackStatePlaying,
             client.GetMediaSessionState().actual_playback_state());
 
   client.UpdatePlatformPlaybackState(kMediaSessionPlaybackStatePaused);
 
-  base::RunLoop().RunUntilIdle();
+  client.WaitForSessionStateChange();
   EXPECT_EQ(kMediaSessionPlaybackStatePaused,
             client.GetMediaSessionState().actual_playback_state());
 
   session->set_playback_state(kMediaSessionPlaybackStateNone);
 
-  base::RunLoop().RunUntilIdle();
+  client.WaitForSessionStateChange();
   EXPECT_EQ(kMediaSessionPlaybackStateNone,
             client.GetMediaSessionState().actual_playback_state());
 
   client.UpdatePlatformPlaybackState(kMediaSessionPlaybackStateNone);
 
-  base::RunLoop().RunUntilIdle();
+  client.WaitForSessionStateChange();
   EXPECT_EQ(kMediaSessionPlaybackStateNone,
             client.GetMediaSessionState().actual_playback_state());
 
-  run_loop.Run();
+  EXPECT_GE(client.GetMediaSessionChangeCount(), 2);
 }
 
 TEST(MediaSessionTest, NullActionClears) {
   base::MessageLoop message_loop(base::MessageLoop::TYPE_DEFAULT);
-  base::RunLoop run_loop;
 
   MockMediaSessionClient client;
-  MediaSessionState state;
-
-  ON_CALL(client, OnMediaSessionStateChanged(_))
-      .WillByDefault(InvokeWithoutArgs(&run_loop, &base::RunLoop::Quit));
-  EXPECT_CALL(client, OnMediaSessionStateChanged(_)).Times(AtLeast(0));
-
   scoped_refptr<MediaSession> session = client.GetMediaSession();
 
-  base::RunLoop().RunUntilIdle();
-  state = client.GetMediaSessionState();
+  // Trigger a session state change without impacting playback state.
+  session->set_metadata(new MediaMetadata);
+  client.WaitForSessionStateChange();
+  EXPECT_EQ(client.GetMediaSessionChangeCount(), 1);
+
+  MediaSessionState state = client.GetMediaSessionState();
   EXPECT_EQ(kMediaSessionPlaybackStateNone, state.actual_playback_state());
   EXPECT_EQ(0, state.available_actions().to_ulong());
 
@@ -184,30 +191,30 @@
   FakeScriptValue<MediaSession::MediaSessionActionHandler> null_holder(NULL);
 
   session->SetActionHandler(kMediaSessionActionPlay, holder);
-  base::RunLoop().RunUntilIdle();
+  client.WaitForSessionStateChange();
   EXPECT_EQ(1, client.GetMediaSessionState().available_actions().to_ulong());
   client.InvokeAction(kMediaSessionActionPlay);
 
   session->SetActionHandler(kMediaSessionActionPlay, null_holder);
-  base::RunLoop().RunUntilIdle();
+  client.WaitForSessionStateChange();
   EXPECT_EQ(0, client.GetMediaSessionState().available_actions().to_ulong());
   client.InvokeAction(kMediaSessionActionPlay);
+
+  EXPECT_GE(client.GetMediaSessionChangeCount(), 3);
 }
 
 TEST(MediaSessionTest, AvailableActions) {
   base::MessageLoop message_loop(base::MessageLoop::TYPE_DEFAULT);
-  base::RunLoop run_loop;
 
   MockMediaSessionClient client;
   MediaSessionState state;
-
-  ON_CALL(client, OnMediaSessionStateChanged(_))
-      .WillByDefault(InvokeWithoutArgs(&run_loop, &base::RunLoop::Quit));
-  EXPECT_CALL(client, OnMediaSessionStateChanged(_)).Times(AtLeast(0));
-
   scoped_refptr<MediaSession> session = client.GetMediaSession();
 
-  base::RunLoop().RunUntilIdle();
+  // Trigger a session state change without impacting playback state.
+  session->set_metadata(new MediaMetadata);
+  client.WaitForSessionStateChange();
+  EXPECT_EQ(client.GetMediaSessionChangeCount(), 1);
+
   state = client.GetMediaSessionState();
   EXPECT_EQ(kMediaSessionPlaybackStateNone, state.actual_playback_state());
   EXPECT_EQ(0, state.available_actions().to_ulong());
@@ -218,28 +225,27 @@
 
   session->SetActionHandler(kMediaSessionActionPlay, holder);
 
-  base::RunLoop().RunUntilIdle();
+  client.WaitForSessionStateChange();
   state = client.GetMediaSessionState();
   EXPECT_EQ(1 << kMediaSessionActionPlay,
             state.available_actions().to_ulong());
 
   session->SetActionHandler(kMediaSessionActionPause, holder);
 
-  base::RunLoop().RunUntilIdle();
+  client.WaitForSessionStateChange();
   state = client.GetMediaSessionState();
   EXPECT_EQ(1 << kMediaSessionActionPlay,
             state.available_actions().to_ulong());
 
   session->SetActionHandler(kMediaSessionActionSeekto, holder);
 
-  base::RunLoop().RunUntilIdle();
+  client.WaitForSessionStateChange();
   state = client.GetMediaSessionState();
-  EXPECT_EQ(1 << kMediaSessionActionPlay | 1 << kMediaSessionActionSeekto,
-            state.available_actions().to_ulong());
+  EXPECT_EQ(1 << kMediaSessionActionPlay, state.available_actions().to_ulong());
 
   client.UpdatePlatformPlaybackState(kMediaSessionPlaybackStatePlaying);
 
-  base::RunLoop().RunUntilIdle();
+  client.WaitForSessionStateChange();
   state = client.GetMediaSessionState();
   EXPECT_EQ(kMediaSessionPlaybackStatePlaying, state.actual_playback_state());
   EXPECT_EQ(1 << kMediaSessionActionPause | 1 << kMediaSessionActionSeekto,
@@ -247,7 +253,7 @@
 
   session->set_playback_state(kMediaSessionPlaybackStatePlaying);
 
-  base::RunLoop().RunUntilIdle();
+  client.WaitForSessionStateChange();
   state = client.GetMediaSessionState();
   EXPECT_EQ(kMediaSessionPlaybackStatePlaying, state.actual_playback_state());
   EXPECT_EQ(1 << kMediaSessionActionPause | 1 << kMediaSessionActionSeekto,
@@ -255,7 +261,7 @@
 
   session->set_playback_state(kMediaSessionPlaybackStatePaused);
 
-  base::RunLoop().RunUntilIdle();
+  client.WaitForSessionStateChange();
   state = client.GetMediaSessionState();
   EXPECT_EQ(kMediaSessionPlaybackStatePlaying, state.actual_playback_state());
   EXPECT_EQ(1 << kMediaSessionActionPause | 1 << kMediaSessionActionSeekto,
@@ -263,7 +269,7 @@
 
   session->set_playback_state(kMediaSessionPlaybackStatePlaying);
 
-  base::RunLoop().RunUntilIdle();
+  client.WaitForSessionStateChange();
   state = client.GetMediaSessionState();
   EXPECT_EQ(kMediaSessionPlaybackStatePlaying, state.actual_playback_state());
   EXPECT_EQ(1 << kMediaSessionActionPause | 1 << kMediaSessionActionSeekto,
@@ -271,7 +277,7 @@
 
   client.UpdatePlatformPlaybackState(kMediaSessionPlaybackStatePaused);
 
-  base::RunLoop().RunUntilIdle();
+  client.WaitForSessionStateChange();
   state = client.GetMediaSessionState();
   EXPECT_EQ(kMediaSessionPlaybackStatePlaying, state.actual_playback_state());
   EXPECT_EQ(1 << kMediaSessionActionPause | 1 << kMediaSessionActionSeekto,
@@ -279,15 +285,14 @@
 
   session->set_playback_state(kMediaSessionPlaybackStateNone);
 
-  base::RunLoop().RunUntilIdle();
+  client.WaitForSessionStateChange();
   state = client.GetMediaSessionState();
   EXPECT_EQ(kMediaSessionPlaybackStateNone, state.actual_playback_state());
-  EXPECT_EQ(1 << kMediaSessionActionPlay | 1 << kMediaSessionActionSeekto,
-            state.available_actions().to_ulong());
+  EXPECT_EQ(1 << kMediaSessionActionPlay, state.available_actions().to_ulong());
 
   session->set_playback_state(kMediaSessionPlaybackStatePaused);
 
-  base::RunLoop().RunUntilIdle();
+  client.WaitForSessionStateChange();
   state = client.GetMediaSessionState();
   EXPECT_EQ(kMediaSessionPlaybackStatePaused, state.actual_playback_state());
   EXPECT_EQ(1 << kMediaSessionActionPlay | 1 << kMediaSessionActionSeekto,
@@ -295,25 +300,17 @@
 
   client.UpdatePlatformPlaybackState(kMediaSessionPlaybackStateNone);
 
-  base::RunLoop().RunUntilIdle();
+  client.WaitForSessionStateChange();
   state = client.GetMediaSessionState();
   EXPECT_EQ(kMediaSessionPlaybackStatePaused, state.actual_playback_state());
   EXPECT_EQ(1 << kMediaSessionActionPlay | 1 << kMediaSessionActionSeekto,
             state.available_actions().to_ulong());
-
-  run_loop.Run();
 }
 
 TEST(MediaSessionTest, SeekDetails) {
   base::MessageLoop message_loop(base::MessageLoop::TYPE_DEFAULT);
-  base::RunLoop run_loop;
 
   MockMediaSessionClient client;
-
-  ON_CALL(client, OnMediaSessionStateChanged(_))
-      .WillByDefault(InvokeWithoutArgs(&run_loop, &base::RunLoop::Quit));
-  EXPECT_CALL(client, OnMediaSessionStateChanged(_)).Times(AtLeast(0));
-
   scoped_refptr<MediaSession> session = client.GetMediaSession();
 
   MockCallbackFunction cf;
@@ -351,18 +348,15 @@
   details->set_action(kMediaSessionActionSeekbackward);
   details->set_seek_offset(5.6);
   client.InvokeAction(std::move(details));
+
+  client.WaitForSessionStateChange();
+  EXPECT_GE(client.GetMediaSessionChangeCount(), 0);
 }
 
 TEST(MediaSessionTest, PositionState) {
   base::MessageLoop message_loop(base::MessageLoop::TYPE_DEFAULT);
-  base::RunLoop run_loop;
 
   MockMediaSessionClient client;
-
-  ON_CALL(client, OnMediaSessionStateChanged(_))
-      .WillByDefault(InvokeWithoutArgs(&run_loop, &base::RunLoop::Quit));
-  EXPECT_CALL(client, OnMediaSessionStateChanged(_)).Times(AtLeast(3));
-
   MockMediaSession& session = client.mock_session();
   MediaSessionState state;
 
@@ -373,8 +367,12 @@
   position_state->set_duration(100.0);
   position_state->set_position(10.0);
 
+  // Trigger a session state change without impacting playback state.
+  session.set_metadata(new MediaMetadata);
+  client.WaitForSessionStateChange();
+  EXPECT_EQ(client.GetMediaSessionChangeCount(), 1);
+
   // Position state not yet reported
-  base::RunLoop().RunUntilIdle();
   state = client.GetMediaSessionState();
   EXPECT_EQ(0,
             state.GetCurrentPlaybackPosition(start_time + 999 * kSbTimeSecond));
@@ -385,7 +383,7 @@
   EXPECT_CALL(session, GetMonotonicNow()).WillOnce(Return(start_time));
   position_state->set_playback_rate(1.0);
   session.SetPositionState(position_state);
-  base::RunLoop().RunUntilIdle();
+  client.WaitForSessionStateChange();
   state = client.GetMediaSessionState();
   EXPECT_EQ((10 + 50) * kSbTimeSecond,
             state.GetCurrentPlaybackPosition(start_time + 50 * kSbTimeSecond));
@@ -398,7 +396,7 @@
   EXPECT_CALL(session, GetMonotonicNow()).WillOnce(Return(start_time));
   position_state->set_playback_rate(2.0);
   session.SetPositionState(position_state);
-  base::RunLoop().RunUntilIdle();
+  client.WaitForSessionStateChange();
   state = client.GetMediaSessionState();
   EXPECT_EQ((10 + 2 * 20) * kSbTimeSecond,
             state.GetCurrentPlaybackPosition(start_time + 20 * kSbTimeSecond));
@@ -411,7 +409,7 @@
   EXPECT_CALL(session, GetMonotonicNow()).WillOnce(Return(start_time));
   position_state->set_playback_rate(-1.0);
   session.SetPositionState(position_state);
-  base::RunLoop().RunUntilIdle();
+  client.WaitForSessionStateChange();
   state = client.GetMediaSessionState();
   EXPECT_EQ(0 * kSbTimeSecond,
             state.GetCurrentPlaybackPosition(start_time + 20 * kSbTimeSecond));
@@ -425,7 +423,7 @@
   position_state->set_duration(std::numeric_limits<double>::infinity());
   position_state->set_playback_rate(1.0);
   session.SetPositionState(position_state);
-  base::RunLoop().RunUntilIdle();
+  client.WaitForSessionStateChange();
   state = client.GetMediaSessionState();
   EXPECT_EQ(10 * kSbTimeSecond + 1 * kSbTimeDay,
             state.GetCurrentPlaybackPosition(start_time + 1 * kSbTimeDay));
@@ -436,7 +434,7 @@
   // (Actual playback rate is 0.0, so position is the last reported position.
   //  The web app should update position and playback states together.)
   session.set_playback_state(kMediaSessionPlaybackStatePaused);
-  base::RunLoop().RunUntilIdle();
+  client.WaitForSessionStateChange();
   state = client.GetMediaSessionState();
   EXPECT_EQ(10 * kSbTimeSecond,
             state.GetCurrentPlaybackPosition(start_time + 999 * kSbTimeSecond));
@@ -447,32 +445,32 @@
   // Position state cleared
   EXPECT_CALL(session, GetMonotonicNow()).WillOnce(Return(start_time));
   session.SetPositionState(base::nullopt);
-  base::RunLoop().RunUntilIdle();
+  client.WaitForSessionStateChange();
   state = client.GetMediaSessionState();
   EXPECT_EQ(0,
             state.GetCurrentPlaybackPosition(start_time + 999 * kSbTimeSecond));
   EXPECT_EQ(0, state.duration());
   EXPECT_EQ(0.0, state.actual_playback_rate());
+
+  EXPECT_GE(client.GetMediaSessionChangeCount(), 3);
 }
 
 TEST(MediaSessionTest, Metadata) {
   base::MessageLoop message_loop(base::MessageLoop::TYPE_DEFAULT);
-  base::RunLoop run_loop;
 
   MockMediaSessionClient client;
-
-  ON_CALL(client, OnMediaSessionStateChanged(_))
-      .WillByDefault(InvokeWithoutArgs(&run_loop, &base::RunLoop::Quit));
-  EXPECT_CALL(client, OnMediaSessionStateChanged(_)).Times(AtLeast(0));
-
   MockMediaSession& session = client.mock_session();
   MediaSessionState state;
 
   MediaMetadataInit init_metadata;
   base::Optional<MediaMetadataInit> state_metadata;
 
+  // Trigger a session state change without impacting metadata.
+  session.set_playback_state(kMediaSessionPlaybackStateNone);
+  client.WaitForSessionStateChange();
+  EXPECT_EQ(client.GetMediaSessionChangeCount(), 1);
+
   // Metadata not yet set
-  base::RunLoop().RunUntilIdle();
   state = client.GetMediaSessionState();
   state_metadata = state.metadata();
   EXPECT_FALSE(state.has_metadata());
@@ -491,7 +489,7 @@
   session.set_metadata(
       scoped_refptr<MediaMetadata>(new MediaMetadata(init_metadata)));
 
-  base::RunLoop().RunUntilIdle();
+  client.WaitForSessionStateChange();
   state = client.GetMediaSessionState();
   state_metadata = state.metadata();
   EXPECT_TRUE(state.has_metadata());
@@ -501,6 +499,8 @@
   EXPECT_EQ("album", state_metadata->album());
   EXPECT_EQ(1, state_metadata->artwork().size());
   EXPECT_EQ("http://art.image", state_metadata->artwork().at(0).src());
+
+  EXPECT_GE(client.GetMediaSessionChangeCount(), 2);
 }
 
 }  // namespace
diff --git a/src/cobalt/network/net_log_constants.cc b/src/cobalt/network/net_log_constants.cc
index 6f96411..a012c4b 100644
--- a/src/cobalt/network/net_log_constants.cc
+++ b/src/cobalt/network/net_log_constants.cc
@@ -115,7 +115,7 @@
   {
     std::unique_ptr<base::DictionaryValue> dict(new base::DictionaryValue());
 
-    // TODO[johnx]: find out where the corresponding integer number for each
+    // TODO: find out where the corresponding integer number for each
     // event phase lives and replace the following hard-coded number with them.
     dict->SetInteger("PHASE_BEGIN", 0);
     dict->SetInteger("PHASE_END", 1);
diff --git a/src/cobalt/network/switches.cc b/src/cobalt/network/switches.cc
index 6a7bd0a..469b8ae 100644
--- a/src/cobalt/network/switches.cc
+++ b/src/cobalt/network/switches.cc
@@ -33,6 +33,9 @@
 const char kUserAgent[] = "user_agent";
 #endif  // ENABLE_DEBUG_COMMAND_LINE_SWITCHES
 
+// Switch to disable use of the Quic network protocol.
+const char kDisableQuic[] = "disable_quic";
+
 }  // namespace switches
 }  // namespace network
 }  // namespace cobalt
diff --git a/src/cobalt/network/switches.h b/src/cobalt/network/switches.h
index 8d46ce1..a3c3894 100644
--- a/src/cobalt/network/switches.h
+++ b/src/cobalt/network/switches.h
@@ -24,6 +24,7 @@
 extern const char kNetLogCaptureMode[];
 extern const char kUserAgent[];
 #endif  // ENABLE_DEBUG_COMMAND_LINE_SWITCHES
+extern const char kDisableQuic[];
 
 }  // namespace switches
 }  // namespace network
diff --git a/src/cobalt/network/url_request_context.cc b/src/cobalt/network/url_request_context.cc
index 850eade..4cfb2c8 100644
--- a/src/cobalt/network/url_request_context.cc
+++ b/src/cobalt/network/url_request_context.cc
@@ -22,11 +22,12 @@
 #include "cobalt/network/network_delegate.h"
 #include "cobalt/network/persistent_cookie_store.h"
 #include "cobalt/network/proxy_config_service.h"
+#include "cobalt/network/switches.h"
 #include "net/cert/cert_net_fetcher.h"
+#include "net/cert/cert_verifier.h"
 #include "net/cert/cert_verify_proc.h"
 #include "net/cert/ct_policy_enforcer.h"
 #include "net/cert/do_nothing_ct_verifier.h"
-#include "net/cert/multi_threaded_cert_verifier.h"
 #include "net/cert_net/cert_net_fetcher_impl.h"
 #include "net/dns/host_cache.h"
 #include "net/http/http_auth_handler_factory.h"
@@ -49,13 +50,30 @@
   proxy_config.proxy_rules().ParseFromString(proxy_rules);
   return proxy_config;
 }
+
+#if defined(ENABLE_DEBUGGER)
+const char kQUICToggleCommand[] = "quic_toggle";
+const char kQUICToggleCommandShortHelp[] = "Toggles QUIC support on/off.";
+const char kQUICToggleCommandLongHelp[] =
+    "Each time this is called, it will toggle whether QUIC support is "
+    "enabled or not. The new value will apply for new streams.";
+#endif  // defined(ENABLE_DEBUGGER)
+
 }  // namespace
 
 URLRequestContext::URLRequestContext(
     storage::StorageManager* storage_manager, const std::string& custom_proxy,
     net::NetLog* net_log, bool ignore_certificate_errors,
     scoped_refptr<base::SingleThreadTaskRunner> network_task_runner)
-    : ALLOW_THIS_IN_INITIALIZER_LIST(storage_(this)) {
+    : ALLOW_THIS_IN_INITIALIZER_LIST(storage_(this))
+#if defined(ENABLE_DEBUGGER)
+      ,
+      ALLOW_THIS_IN_INITIALIZER_LIST(quic_toggle_command_handler_(
+          kQUICToggleCommand,
+          base::Bind(&URLRequestContext::OnQuicToggle, base::Unretained(this)),
+          kQUICToggleCommandShortHelp, kQUICToggleCommandLongHelp))
+#endif  // defined(ENABLE_DEBUGGER)
+{
   if (storage_manager) {
     persistent_cookie_store_ =
         new PersistentCookieStore(storage_manager, network_task_runner);
@@ -85,11 +103,13 @@
   storage_.set_ct_policy_enforcer(std::unique_ptr<net::CTPolicyEnforcer>(
       new net::DefaultCTPolicyEnforcer()));
   DCHECK(ct_policy_enforcer());
-  storage_.set_cert_verifier(std::make_unique<net::MultiThreadedCertVerifier>(
-      net::CertVerifyProc::CreateDefault()));
+  // As of Chromium m70 net, CreateDefault will return a caching multi-thread
+  // cert verifier, the verification cache will usually cache 25-40
+  // results in a single session which can take up to 100KB memory.
+  storage_.set_cert_verifier(net::CertVerifier::CreateDefault());
   storage_.set_transport_security_state(
       std::make_unique<net::TransportSecurityState>());
-  // TODO[johnx]: Investigate if we want the cert transparency verifier.
+  // TODO: Investigate if we want the cert transparency verifier.
   storage_.set_cert_transparency_verifier(
       std::make_unique<net::DoNothingCTVerifier>());
   storage_.set_ssl_config_service(
@@ -102,15 +122,13 @@
 
   net::HttpNetworkSession::Params params;
 #if defined(COBALT_ENABLE_QUIC)
-  params.enable_quic = true;
+  base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
+  params.enable_quic = !command_line->HasSwitch(switches::kDisableQuic);
 #endif
 #if defined(ENABLE_IGNORE_CERTIFICATE_ERRORS)
   params.ignore_certificate_errors = ignore_certificate_errors;
   if (ignore_certificate_errors) {
-    auto* multi_threaded_cert_verifier =
-        base::polymorphic_downcast<net::MultiThreadedCertVerifier*>(
-            cert_verifier());
-    multi_threaded_cert_verifier->set_ignore_errors(true);
+    cert_verifier()->set_ignore_certificate_errors(true);
     LOG(INFO) << "ignore_certificate_errors option specified, Certificate "
                  "validation results will be ignored but error message will "
                  "still be displayed.";
@@ -164,5 +182,12 @@
       std::make_unique<ProxyConfigService>(proxy_config));
 }
 
+#if defined(ENABLE_DEBUGGER)
+void URLRequestContext::OnQuicToggle(const std::string& /*message*/) {
+  DCHECK(storage_.http_network_session());
+  storage_.http_network_session()->ToggleQuic();
+}
+#endif  // defined(ENABLE_DEBUGGER)
+
 }  // namespace network
 }  // namespace cobalt
diff --git a/src/cobalt/network/url_request_context.h b/src/cobalt/network/url_request_context.h
index 8845870..56852a9 100644
--- a/src/cobalt/network/url_request_context.h
+++ b/src/cobalt/network/url_request_context.h
@@ -23,6 +23,10 @@
 #include "net/url_request/url_request_context_getter.h"
 #include "net/url_request/url_request_context_storage.h"
 
+#if defined(ENABLE_DEBUGGER)
+#include "cobalt/debug/console/command_manager.h"
+#endif  // ENABLE_DEBUGGER
+
 namespace cobalt {
 namespace storage {
 class StorageManager;
@@ -44,6 +48,16 @@
   net::URLRequestContextStorage storage_;
   scoped_refptr<net::CookieMonster::PersistentCookieStore>
       persistent_cookie_store_;
+
+#if defined(ENABLE_DEBUGGER)
+  // Command handler object for toggling the input fuzzer on/off.
+  debug::console::ConsoleCommandManager::CommandHandler
+      quic_toggle_command_handler_;
+
+  // Toggles the input fuzzer on/off.  Ignores the parameter.
+  void OnQuicToggle(const std::string&);
+#endif  // defined(ENABLE_DEBUGGER)
+
   DISALLOW_COPY_AND_ASSIGN(URLRequestContext);
 };
 
diff --git a/src/cobalt/renderer/glimp_shaders/glsl/fragment_skia_texture_lookup_translated_rectangle.glsl b/src/cobalt/renderer/glimp_shaders/glsl/fragment_skia_texture_lookup_translated_rectangle.glsl
new file mode 100644
index 0000000..6969506
--- /dev/null
+++ b/src/cobalt/renderer/glimp_shaders/glsl/fragment_skia_texture_lookup_translated_rectangle.glsl
@@ -0,0 +1,39 @@
+#version 100
+
+uniform highp float u_skRTHeight;
+precision mediump float;
+uniform vec4 uColor_Stage0;
+uniform vec4 uproxyRect_Stage1;
+uniform float ucornerRadius_Stage1;
+uniform float ublurRadius_Stage1;
+uniform highp sampler2D uTextureSampler_0_Stage1;
+void main() {
+highp     vec2 _sktmpCoord = gl_FragCoord.xy;
+highp     vec4 sk_FragCoord = vec4(_sktmpCoord.x, u_skRTHeight - _sktmpCoord.y, 1.0, 1.0);
+    vec4 outputColor_Stage0;
+    {
+        outputColor_Stage0 = uColor_Stage0;
+    }
+    vec4 output_Stage1;
+    {
+        vec2 translatedFragPos = sk_FragCoord.xy - uproxyRect_Stage1.xy;
+        float threshold = ucornerRadius_Stage1 + 2.0 * ublurRadius_Stage1;
+        vec2 middle = (uproxyRect_Stage1.zw - uproxyRect_Stage1.xy) - 2.0 * threshold;
+        if (translatedFragPos.x >= threshold && translatedFragPos.x < middle.x + threshold) {
+            translatedFragPos.x = threshold;
+        } else if (translatedFragPos.x >= middle.x + threshold) {
+            translatedFragPos.x -= middle.x - 1.0;
+        }
+        if (translatedFragPos.y > threshold && translatedFragPos.y < middle.y + threshold) {
+            translatedFragPos.y = threshold;
+        } else if (translatedFragPos.y >= middle.y + threshold) {
+            translatedFragPos.y -= middle.y - 1.0;
+        }
+        vec2 proxyDims = vec2(2.0 * threshold + 1.0);
+        vec2 texCoord = translatedFragPos / proxyDims;
+        output_Stage1 = texture2D(uTextureSampler_0_Stage1, texCoord);
+    }
+    {
+        gl_FragColor = outputColor_Stage0 * output_Stage1;
+    }
+}
diff --git a/src/cobalt/renderer/pipeline.cc b/src/cobalt/renderer/pipeline.cc
index 8685199..ef54726 100644
--- a/src/cobalt/renderer/pipeline.cc
+++ b/src/cobalt/renderer/pipeline.cc
@@ -175,18 +175,20 @@
       FROM_HERE,
       base::Bind(&Pipeline::ShutdownSubmissionQueue, base::Unretained(this)));
 
-  // This potential reference to a render tree whose animations may have ended
-  // must be destroyed before we shutdown the rasterizer thread since it may
-  // contain references to render tree nodes and resources.
-  last_render_tree_ = NULL;
-  last_animated_render_tree_ = NULL;
-
   // Submit a shutdown task to the rasterizer thread so that it can shutdown
   // anything that must be shutdown from that thread.
-  rasterizer_thread_.message_loop()->task_runner()->PostTask(
+  rasterizer_thread_.message_loop()->task_runner()->PostBlockingTask(
       FROM_HERE,
       base::Bind(&Pipeline::ShutdownRasterizerThread, base::Unretained(this)));
 
+  // Finally shutdown the rasterizer. Do this after ShutdownRasterizerThread()
+  // has run, just in case it posted more tasks to the rasterizer thread. This
+  // will free the rasterizer after the posted tasks have executed (unless they
+  // were delayed tasks).
+  rasterizer_thread_.message_loop()->task_runner()->PostBlockingTask(
+      FROM_HERE,
+      base::Bind(&Pipeline::ShutdownRasterizer, base::Unretained(this)));
+
   rasterizer_thread_.Stop();
 }
 
@@ -584,8 +586,11 @@
         render_target_);
   }
 
-  // Finally, destroy the rasterizer.
-  rasterizer_.reset();
+  // This potential reference to a render tree whose animations may have ended
+  // must be destroyed before we shutdown the rasterizer thread since it may
+  // contain references to render tree nodes and resources.
+  last_render_tree_ = NULL;
+  last_animated_render_tree_ = NULL;
 }
 
 #if defined(ENABLE_DEBUGGER)
diff --git a/src/cobalt/renderer/pipeline.h b/src/cobalt/renderer/pipeline.h
index c96da47..edd931d 100644
--- a/src/cobalt/renderer/pipeline.h
+++ b/src/cobalt/renderer/pipeline.h
@@ -163,6 +163,11 @@
   // needs to be shutdown from there.
   void ShutdownRasterizerThread();
 
+  // This method releases the rasterizer. This is exposed separately from
+  // ShutdownRasterizerThread() so it can be executed after tasks that may
+  // be posted by ShutdownRasterizerThread().
+  void ShutdownRasterizer() { rasterizer_.reset(); }
+
 #if defined(ENABLE_DEBUGGER)
   void OnDumpCurrentRenderTree(const std::string&);
   void OnToggleFpsStdout(const std::string&);
diff --git a/src/cobalt/renderer/rasterizer/blitter/render_tree_node_visitor.cc b/src/cobalt/renderer/rasterizer/blitter/render_tree_node_visitor.cc
index bfff114..e2a4b5c 100644
--- a/src/cobalt/renderer/rasterizer/blitter/render_tree_node_visitor.cc
+++ b/src/cobalt/renderer/rasterizer/blitter/render_tree_node_visitor.cc
@@ -51,6 +51,8 @@
 namespace rasterizer {
 namespace blitter {
 
+using common::utils::IsOpaque;
+using common::utils::IsTransparent;
 using math::Matrix3F;
 using math::Rect;
 using math::RectF;
@@ -154,9 +156,9 @@
   }
 
   if (!filter_node->data().opacity_filter ||
-      filter_node->data().opacity_filter->opacity() == 1.0f) {
+      IsOpaque(filter_node->data().opacity_filter->opacity())) {
     source->Accept(this);
-  } else if (filter_node->data().opacity_filter->opacity() != 0.0f) {
+  } else if (!IsTransparent(filter_node->data().opacity_filter->opacity())) {
     // If the opacity is set to 0, the contents are invisible and we are
     // trivially done.  However, if we made it into this branch, then
     // we know that opacity is in the range (0, 1), exclusive.
@@ -254,7 +256,7 @@
                 -local_matrix.Get(1, 2) * image_size.height()));
 
   // Render the image.
-  if (render_state_.opacity < 1.0f) {
+  if (!IsOpaque(render_state_.opacity)) {
     SbBlitterSetBlending(context_, true);
     SbBlitterSetModulateBlitsWithColor(context_, true);
     SbBlitterSetColor(
@@ -336,12 +338,7 @@
                           const RectF& rect) {
   SbBlitterColor blitter_color = RenderTreeToBlitterColor(color);
   SbBlitterSetColor(context, blitter_color);
-
-  if (SbBlitterAFromColor(blitter_color) < 255) {
-    SbBlitterSetBlending(context, true);
-  } else {
-    SbBlitterSetBlending(context, false);
-  }
+  SbBlitterSetBlending(context, !IsOpaque(color.a()));
 
   // We draw four rectangles, one for each border edge.  They have the following
   // layout:
@@ -407,11 +404,11 @@
               rect_node->data().background_brush.get());
       ColorRGBA color = solid_color_brush->color();
 
-      if (render_state_.opacity < 1.0f) {
+      if (!IsOpaque(render_state_.opacity)) {
         color.set_a(color.a() * render_state_.opacity);
       }
 
-      SbBlitterSetBlending(context_, color.a() < 1.0f);
+      SbBlitterSetBlending(context_, !IsOpaque(color.a()));
       SbBlitterSetColor(context_, RenderTreeToBlitterColor(color));
 
       SbBlitterFillRect(context_, RectFToBlitterRect(transformed_rect));
@@ -448,7 +445,7 @@
           border.bottom.width * render_state_.transform.scale().y();
 
       ColorRGBA color = border.left.color;
-      if (render_state_.opacity < 1.0f) {
+      if (!IsOpaque(render_state_.opacity)) {
         color.set_a(color.a() * render_state_.opacity);
       }
       RenderRectNodeBorder(context_, color, left_width, right_width, top_width,
@@ -493,7 +490,7 @@
 
   SbBlitterSetBlending(context_, true);
 
-  if (render_state_.opacity < 1.0f) {
+  if (!IsOpaque(render_state_.opacity)) {
     SbBlitterSetModulateBlitsWithColor(context_, true);
     SbBlitterSetColor(
         context_,
diff --git a/src/cobalt/renderer/rasterizer/common/utils.cc b/src/cobalt/renderer/rasterizer/common/utils.cc
index 4f7c304..d7049a2 100644
--- a/src/cobalt/renderer/rasterizer/common/utils.cc
+++ b/src/cobalt/renderer/rasterizer/common/utils.cc
@@ -52,6 +52,14 @@
   return false;
 }
 
+bool IsOpaque(float opacity) {
+  return opacity >= 254.5f / 255.0f;
+}
+
+bool IsTransparent(float opacity) {
+  return opacity <= 0.5f / 255.0f;
+}
+
 }  // namespace utils
 }  // namespace common
 }  // namespace rasterizer
diff --git a/src/cobalt/renderer/rasterizer/common/utils.h b/src/cobalt/renderer/rasterizer/common/utils.h
index b67314a..5fe915b 100644
--- a/src/cobalt/renderer/rasterizer/common/utils.h
+++ b/src/cobalt/renderer/rasterizer/common/utils.h
@@ -32,6 +32,13 @@
 // offscreen target, then rendering that target with opacity.
 bool NodeCanRenderWithOpacity(render_tree::Node* node);
 
+// Returns whether the given opacity [0,1] should be considered fully opaque.
+bool IsOpaque(float opacity);
+
+// Returns whether the given opacity [0,1] should be considered fully
+// transparent.
+bool IsTransparent(float opacity);
+
 }  // namespace utils
 }  // namespace common
 }  // namespace rasterizer
diff --git a/src/cobalt/renderer/rasterizer/egl/render_tree_node_visitor.cc b/src/cobalt/renderer/rasterizer/egl/render_tree_node_visitor.cc
index 13a8e7e..40c04a4 100644
--- a/src/cobalt/renderer/rasterizer/egl/render_tree_node_visitor.cc
+++ b/src/cobalt/renderer/rasterizer/egl/render_tree_node_visitor.cc
@@ -47,6 +47,9 @@
 namespace rasterizer {
 namespace egl {
 
+using common::utils::IsOpaque;
+using common::utils::IsTransparent;
+
 namespace {
 
 typedef float ColorTransformMatrix[16];
@@ -76,8 +79,6 @@
   return kBT709ColorTransformMatrixInColumnMajor;
 }
 
-bool IsOpaque(float opacity) { return opacity >= 0.999f; }
-
 bool IsUniformSolidColor(const render_tree::Border& border) {
   return border.left.style == render_tree::kBorderStyleSolid &&
          border.right.style == render_tree::kBorderStyleSolid &&
@@ -413,10 +414,10 @@
   if (data.opacity_filter && !data.viewport_filter && !data.blur_filter &&
       !data.map_to_mesh_filter) {
     const float filter_opacity = data.opacity_filter->opacity();
-    if (filter_opacity <= 0.0f) {
+    if (IsTransparent(filter_opacity)) {
       // Totally transparent. Ignore the source.
       return;
-    } else if (filter_opacity >= 1.0f) {
+    } else if (IsOpaque(filter_opacity)) {
       // Totally opaque. Render like normal.
       data.source->Accept(this);
       return;
@@ -1111,7 +1112,7 @@
   // clear command instead of a more general draw command, to give the GL
   // driver a better chance to optimize.
   if (!draw_state_.rounded_scissor_corners &&
-      draw_state_.transform.IsIdentity() && draw_state_.opacity == 1.0f) {
+      draw_state_.transform.IsIdentity() && IsOpaque(draw_state_.opacity)) {
     math::Rect old_scissor = draw_state_.scissor;
     draw_state_.scissor.Intersect(math::Rect::RoundFromRectF(rect));
     std::unique_ptr<DrawObject> draw_clear(
diff --git a/src/cobalt/renderer/rasterizer/skia/render_tree_node_visitor.cc b/src/cobalt/renderer/rasterizer/skia/render_tree_node_visitor.cc
index 37ffae8..7c44ce9 100644
--- a/src/cobalt/renderer/rasterizer/skia/render_tree_node_visitor.cc
+++ b/src/cobalt/renderer/rasterizer/skia/render_tree_node_visitor.cc
@@ -81,6 +81,9 @@
 namespace rasterizer {
 namespace skia {
 
+using common::utils::IsOpaque;
+using common::utils::IsTransparent;
+
 RenderTreeNodeVisitor::RenderTreeNodeVisitor(
     SkCanvas* render_target,
     const CreateScratchSurfaceFunction* create_scratch_surface_function,
@@ -450,13 +453,13 @@
 #endif  // ENABLE_RENDER_TREE_VISITOR_TRACING
 
   if (filter_node->data().opacity_filter &&
-      filter_node->data().opacity_filter->opacity() <= 0.0f) {
+      IsTransparent(filter_node->data().opacity_filter->opacity())) {
     // The opacity 0, so we have nothing to render.
     return;
   }
 
   if ((!filter_node->data().opacity_filter ||
-       filter_node->data().opacity_filter->opacity() == 1.0f) &&
+       IsOpaque(filter_node->data().opacity_filter->opacity())) &&
       !filter_node->data().viewport_filter &&
       (!filter_node->data().blur_filter ||
        filter_node->data().blur_filter->blur_sigma() == 0.0f)) {
@@ -557,7 +560,7 @@
   // |kLow_SkFilterQuality| is used for bilinear interpolation of images.
   paint.setFilterQuality(kLow_SkFilterQuality);
 
-  if (draw_state.opacity < 1.0f) {
+  if (!IsOpaque(draw_state.opacity)) {
     paint.setAlpha(draw_state.opacity * 255);
   } else if (is_opaque && draw_state.clip_is_rect) {
     paint.setBlendMode(SkBlendMode::kSrc);
@@ -811,7 +814,7 @@
   const cobalt::render_tree::ColorRGBA& color = solid_color_brush->color();
 
   float alpha = color.a() * draw_state_.opacity;
-  if (alpha == 1.0f) {
+  if (IsOpaque(alpha)) {
     paint_->setBlendMode(SkBlendMode::kSrc);
   } else {
     paint_->setBlendMode(SkBlendMode::kSrcOver);
@@ -862,10 +865,10 @@
       SkGradientShader::kInterpolateColorsInPremul_Flag, NULL));
   paint_->setShader(shader);
 
-  if (!skia_color_stops.has_alpha && draw_state_.opacity == 1.0f) {
+  if (!skia_color_stops.has_alpha && IsOpaque(draw_state_.opacity)) {
     paint_->setBlendMode(SkBlendMode::kSrc);
   } else {
-    if (draw_state_.opacity < 1.0f) {
+    if (!IsOpaque(draw_state_.opacity)) {
       paint_->setAlpha(255 * draw_state_.opacity);
     }
     paint_->setBlendMode(SkBlendMode::kSrcOver);
@@ -900,10 +903,10 @@
       SkGradientShader::kInterpolateColorsInPremul_Flag, &local_matrix));
   paint_->setShader(shader);
 
-  if (!skia_color_stops.has_alpha && draw_state_.opacity == 1.0f) {
+  if (!skia_color_stops.has_alpha && IsOpaque(draw_state_.opacity)) {
     paint_->setBlendMode(SkBlendMode::kSrc);
   } else {
-    if (draw_state_.opacity < 1.0f) {
+    if (!IsOpaque(draw_state_.opacity)) {
       paint_->setAlpha(255 * draw_state_.opacity);
     }
     paint_->setBlendMode(SkBlendMode::kSrcOver);
@@ -985,7 +988,7 @@
   paint.setARGB(alpha * 255, border_color.r() * 255, border_color.g() * 255,
                 border_color.b() * 255);
   paint.setAntiAlias(anti_alias);
-  if (alpha == 1.0f) {
+  if (IsOpaque(alpha)) {
     paint.setBlendMode(SkBlendMode::kSrc);
   } else {
     paint.setBlendMode(SkBlendMode::kSrcOver);
@@ -1012,7 +1015,7 @@
     paint.setARGB(alpha * 255, color.r() * 255, color.g() * 255,
                   color.b() * 255);
     paint.setAntiAlias(anti_alias);
-    if (alpha == 1.0f) {
+    if (IsOpaque(alpha)) {
       paint.setBlendMode(SkBlendMode::kSrc);
     } else {
       paint.setBlendMode(SkBlendMode::kSrcOver);
@@ -1128,7 +1131,7 @@
   float alpha = color.a();
   alpha *= draw_state->opacity;
   paint.setARGB(alpha * 255, color.r() * 255, color.g() * 255, color.b() * 255);
-  if (alpha == 1.0f) {
+  if (IsOpaque(alpha)) {
     paint.setBlendMode(SkBlendMode::kSrc);
   } else {
     paint.setBlendMode(SkBlendMode::kSrcOver);
diff --git a/src/cobalt/script/sequence.h b/src/cobalt/script/sequence.h
index 5344212..5c32d8d 100644
--- a/src/cobalt/script/sequence.h
+++ b/src/cobalt/script/sequence.h
@@ -36,6 +36,7 @@
 
   // --- Vector partial emulation ---
   typedef typename SequenceType::size_type size_type;
+  typedef typename SequenceType::value_type value_type;
   typedef typename SequenceType::reference reference;
   typedef typename SequenceType::const_reference const_reference;
   typedef typename SequenceType::iterator iterator;
diff --git a/src/cobalt/script/shared/stub_script_debugger.cc b/src/cobalt/script/shared/stub_script_debugger.cc
index 060a90e..a8ef40b 100644
--- a/src/cobalt/script/shared/stub_script_debugger.cc
+++ b/src/cobalt/script/shared/stub_script_debugger.cc
@@ -14,36 +14,36 @@
 
 #include <memory>
 
-#include "cobalt/script/script_debugger.h"
-
 #include "base/logging.h"
+#include "cobalt/script/global_environment.h"
+#include "cobalt/script/script_debugger.h"
+#include "cobalt/script/source_code.h"
 
 namespace cobalt {
 namespace script {
 
 class StubScriptDebugger : public ScriptDebugger {
  public:
-  StubScriptDebugger(GlobalEnvironment* global_environment,
-                     Delegate* delegate) {
-    NOTIMPLEMENTED();
-  }
-  ~StubScriptDebugger() override { NOTIMPLEMENTED(); }
+  StubScriptDebugger(GlobalEnvironment* global_environment, Delegate* delegate)
+      : global_environment_(global_environment), delegate_(delegate) {}
+  ~StubScriptDebugger() override {}
 
-  void Attach(const std::string& state) override { NOTIMPLEMENTED(); }
-  std::string Detach() override {
-    NOTIMPLEMENTED();
-    return std::string();
-  }
+  void Attach(const std::string& state) override {}
+  std::string Detach() override { return std::string(); }
 
   bool EvaluateDebuggerScript(const std::string& js_code,
                               std::string* out_result_utf8) override {
-    return false;
+    // The stub just evaluates debugger scripts as if they are part of the page.
+    scoped_refptr<script::SourceCode> source_code =
+        script::SourceCode::CreateSourceCode(
+            js_code, base::SourceLocation("[object StubScriptDebugger]", 1, 1));
+    return global_environment_->EvaluateScript(source_code, out_result_utf8);
   }
 
   std::set<std::string> SupportedProtocolDomains() override {
-    NOTIMPLEMENTED();
     return std::set<std::string>();
   }
+
   bool DispatchProtocolMessage(const std::string& method,
                                const std::string& message) override {
     NOTIMPLEMENTED();
@@ -70,9 +70,12 @@
 
   PauseOnExceptionsState SetPauseOnExceptions(
       PauseOnExceptionsState state) override {
-    NOTIMPLEMENTED();
     return kNone;
   }
+
+ private:
+  GlobalEnvironment* global_environment_;
+  Delegate* delegate_;
 };
 
 // Static factory method declared in public interface.
diff --git a/src/cobalt/script/v8c/isolate_fellowship.cc b/src/cobalt/script/v8c/isolate_fellowship.cc
index b554b8a..9e402e9 100644
--- a/src/cobalt/script/v8c/isolate_fellowship.cc
+++ b/src/cobalt/script/v8c/isolate_fellowship.cc
@@ -39,6 +39,8 @@
                                      // ScriptValue::*Reference do not currently
                                      // support incremental tracing.
                                      "--noincremental_marking_wrappers",
+                                     "--noexpose_wasm",
+                                     "--novalidate_asm",
 #if defined(COBALT_GC_ZEAL)
                                      "--gc_interval=1200"
 #endif
diff --git a/src/cobalt/site/docs/development/setup-raspi.md b/src/cobalt/site/docs/development/setup-raspi.md
index 50faeb9..1c584e6 100644
--- a/src/cobalt/site/docs/development/setup-raspi.md
+++ b/src/cobalt/site/docs/development/setup-raspi.md
@@ -91,8 +91,8 @@
 1.  Run the following commands to build Cobalt:
 
     ```
-    $ gyp_cobalt raspi-1
-    $ ninja -C out/raspi-1_debug cobalt
+    $ gyp_cobalt raspi-2
+    $ ninja -C out/raspi-2_debug cobalt
     ```
 
 1.  Run the following command to install your Cobalt binary (and content)
@@ -100,7 +100,7 @@
 
     ```
     rsync -avzh --exclude="obj*" \
-          $COBALT_SRC/out/raspi-1_debug pi@$RASPI_ADDR:~/
+          $COBALT_SRC/out/raspi-2_debug pi@$RASPI_ADDR:~/
     ```
 
     The `rsyncs` get somewhat faster after the first time, as `rsync` is good at
@@ -112,7 +112,7 @@
 
     ```
     ssh pi@$RASPI_ADDR
-    cd raspi-1_debug
+    cd raspi-2_debug
     ./cobalt
     ```
 
diff --git a/src/cobalt/speech/sandbox/sandbox.gyp b/src/cobalt/speech/sandbox/sandbox.gyp
index 1a19a35..03be453 100644
--- a/src/cobalt/speech/sandbox/sandbox.gyp
+++ b/src/cobalt/speech/sandbox/sandbox.gyp
@@ -30,6 +30,7 @@
       'dependencies': [
         '<(DEPTH)/cobalt/audio/audio.gyp:audio',
         '<(DEPTH)/cobalt/base/base.gyp:base',
+        '<(DEPTH)/cobalt/debug/debug.gyp:console_command_manager',
         '<(DEPTH)/cobalt/dom/dom.gyp:dom',
         '<(DEPTH)/cobalt/loader/loader.gyp:loader',
         '<(DEPTH)/cobalt/network/network.gyp:network',
diff --git a/src/cobalt/tools/automated_testing/cobalt_runner.py b/src/cobalt/tools/automated_testing/cobalt_runner.py
index 6d9ae62..d21b9d5 100644
--- a/src/cobalt/tools/automated_testing/cobalt_runner.py
+++ b/src/cobalt/tools/automated_testing/cobalt_runner.py
@@ -247,7 +247,8 @@
 
   def _KillLauncher(self):
     """Kills the launcher and its attached Cobalt instance."""
-    self.ExecuteJavaScript('window.close();')
+    if self.CanExecuteJavaScript():
+      self.ExecuteJavaScript('window.close();')
 
     self.runner_thread.join(COBALT_EXIT_TIMEOUT_SECONDS)
     if self.runner_thread.isAlive():
@@ -305,6 +306,9 @@
         thread.interrupt_main()
     return 0
 
+  def CanExecuteJavaScript(self):
+    return self.webdriver is not None
+
   def ExecuteJavaScript(self, js_code):
     return self.webdriver.execute_script(js_code)
 
diff --git a/src/cobalt/tools/collectd/README.md b/src/cobalt/tools/collectd/README.md
new file mode 100644
index 0000000..9148e19
--- /dev/null
+++ b/src/cobalt/tools/collectd/README.md
@@ -0,0 +1,67 @@
+### Collectd monitoring setup for Cobalt
+
+A python plugin that sends Cobalt CVals to [Collectd](https://collectd.org/)
+metrics collection daemon. The values are retrieved via WebSocket connection
+from Cobalt built-in Chrome DevTools protocol.
+
+![](doc/Collectd_crop.png)
+
+Graphs are available from any Collectd frontend, configuration for
+[CGP](https://github.com/pommi/CGP) is included.
+
+**Note**: Currently the plugin only monitors one target, multi-target
+connection will be added soon.
+
+### Installation
+
+There is a small installation shell script `install.sh` included, that is
+tested to work on Raspberry Pi Raspbian Jessie and desktop Ubuntu. To
+install and configure, simply run `sudo ./install.sh` from the checkout
+directory.
+
+If you intend to run `collectd` and the CGP web frontend  on a Linux
+target like Raspberry Pi, please first copy the plugin directory to a
+convenient location on the target and run the install script from its shell.
+
+Note that it is also possible to configure the plugin to connect from host to
+remote target like Pi, however this is useful if the rest of the `collectd`
+data streams are sent to a host in a [networked configuration](https://collectd.org/wiki/index.php/Networking_introduction)
+and not detailed here.
+
+Cobalt DevTools service currently does not listen on localhost or 127.0.0.1
+address, so you'll need to manually edit cobalt.conf with your local machine
+network adapter IP address, or to target IP address.
+
+**Note**: The script also enables RRD and CSV data outputs, RRD is required
+for CGP to display the data and CSV is useful for post-processing.
+
+After installation, CGP web dashboard will be available at
+http://localhost/CGP
+
+**Note**: Although `collectd` is a system daemon that always runs, the data
+from the Cobalt plugin on the web dashboard will not appear before any data
+is actually sampled. To do this quickly after the installation, start a
+Cobalt instance and restart the `collectd` daemon ( see below ), otherwise
+data sampling frequency gets automatically throttled by `collectd`.
+
+### Troubleshooting
+
+By default, `collectd` outputs log messages to `syslog`. If there is a
+configuration problem, restarting `collectd` daemon and checking syslog usually
+indicates the cause
+
+```
+    sudo service collectd restart
+    tail -n 100 /var/log/syslog | egrep collectd
+```
+
+Verifying that Cobalt DevTools is listening can be done by shell command
+
+```
+   netstat -an | egrep "^tcp .*LISTEN"
+```
+
+If the configured port ( 9222 by default ) is listening, the connection
+should work. To manually verify that the plugin can connect to WebSocket
+and retrieve data, simply run `python cobalt.py` if connecting to localhost
+or `python cobalt.py --host <IP> --port 9222` if connecting to a remote target.
diff --git a/src/cobalt/tools/collectd/cobalt-types.db b/src/cobalt/tools/collectd/cobalt-types.db
new file mode 100644
index 0000000..43cf2b8
--- /dev/null
+++ b/src/cobalt/tools/collectd/cobalt-types.db
@@ -0,0 +1,22 @@
+# Copyright 2019 The Cobalt Authors. All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+lifetime          value:DERIVE:0:U
+gauge_100         value:GAUGE:U:U
+gauge_10k         value:GAUGE:U:U
+gauge_100k        value:GAUGE:U:U
+gauge_1M          value:GAUGE:U:U
+gauge_10M         value:GAUGE:U:U
+gauge_100M        value:GAUGE:U:U
+gauge_1G          value:GAUGE:U:U
diff --git a/src/cobalt/tools/collectd/cobalt.py b/src/cobalt/tools/collectd/cobalt.py
new file mode 100644
index 0000000..dd38f9e
--- /dev/null
+++ b/src/cobalt/tools/collectd/cobalt.py
@@ -0,0 +1,175 @@
+# Copyright 2019 The Cobalt Authors. All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import json
+import time
+import argparse
+import random
+import websocket
+
+try:
+  import collectd
+except ImportError:
+  collectd = None
+
+conf_ = {'host': 'localhost', 'port': 9222}
+
+
+def config(conf):
+  print('config called {!r}'.format(conf))
+  conf_['collectd_conf'] = conf
+  collectd.info('config called {!r}'.format(conf))
+
+
+def reconnect():
+  ws = websocket.create_connection('ws://{}:{}'.format(conf_['host'],
+                                                       conf_['port']))
+  ws.settimeout(3)
+  setattr(ws, 'message_id', 1)
+  conf_['ws'] = ws
+
+
+def init():
+  conf = conf_['collectd_conf']
+  for child in conf.children:
+    collectd.info('conf.child key {} values {}'.format(child.key, child.values))
+    if child.key.lower() == 'address':
+      host, port = child.values[0].split(':')
+      conf_['host'] = host
+      conf_['port'] = int(port)
+
+  reconnect()
+
+
+def wait_result(ws, result_id, timeout):
+  start_time = time.time()
+  messages = []
+  matching_result = None
+  while True:
+    now = time.time()
+    if now - start_time > timeout:
+      break
+    try:
+      message = ws.recv()
+      parsed_message = json.loads(message)
+      messages.append(parsed_message)
+      if 'result' in parsed_message and parsed_message['id'] == result_id:
+        matching_result = parsed_message
+        break
+    except:
+      break
+  return (matching_result, messages)
+
+
+def exec_js(ws, expr):
+  ws.message_id += 1
+  call_obj = {
+      'id': ws.message_id,
+      'method': 'Runtime.evaluate',
+      'params': {
+          'expression': expr,
+          'returnByValue': True
+      }
+  }
+  ws.send(json.dumps(call_obj))
+  result, _ = wait_result(ws, ws.message_id, 10)
+  return result['result']['result']
+
+
+def report_value(plugin, type, instance, value, plugin_instance=None):
+  vl = collectd.Values(plugin=plugin, type=type, type_instance=instance)
+  if plugin_instance:
+    vl.plugin_instance = plugin_instance
+  vl.dispatch(values=[value])
+
+
+def report_cobalt_stat(key, collectd_type):
+  val = exec_js(conf_['ws'], 'h5vcc.cVal.getValue("' + key + '")')
+  try:
+    value = int(val['value'])
+    # collectd.warning('key {} value: {}'.format(key, value))
+    report_value('cobalt', collectd_type, key, value)
+  except TypeError:
+    collectd.warning('Failed to collect: {} {}'.format(key, val))
+
+
+# Tuple of a Cobalt Cval, and data type
+# Collectd frontends like CGP group values to graphs by the reported data type. The types here are
+# simple gauges grouped by their rough estimated orders of magnitude, so that all plots are still
+# somewhat discernible.
+tracked_stats = [('Cobalt.Lifetime', 'lifetime'),
+                 ('Count.DOM.ActiveJavaScriptEvents', 'gauge'),
+                 ('Count.DOM.Attrs', 'gauge_10k'),
+                 ('Count.DOM.EventListeners', 'gauge_10k'),
+                 ('Count.DOM.HtmlCollections', 'gauge_10k'),
+                 ('Count.DOM.NodeLists', 'gauge_10k'),
+                 ('Count.DOM.NodeMaps', 'gauge_10k'),
+                 ('Count.DOM.Nodes', 'gauge_10k'),
+                 ('Count.DOM.StringMaps', 'gauge_100'),
+                 ('Count.DOM.TokenLists', 'gauge_10k'),
+                 ('Count.MainWebModule.DOM.HtmlElement', 'gauge_10k'),
+                 ('Count.MainWebModule.DOM.HtmlElement.Document', 'gauge_10k'),
+                 ('Count.MainWebModule.DOM.HtmlScriptElement.Execute', 'gauge'),
+                 ('Count.Renderer.Rasterize.NewRenderTree', 'gauge_100k'),
+                 ('Count.XHR', 'gauge_100'), ('Memory.CPU.Free', 'gauge_1G'),
+                 ('Memory.CPU.Used', 'gauge_100M'),
+                 ('Memory.DebugConsoleWebModule.DOM.HtmlScriptElement.Execute',
+                  'gauge_100k'),
+                 ('Memory.Font.LocalTypefaceCache.Capacity', 'gauge_10M'),
+                 ('Memory.Font.LocalTypefaceCache.Size', 'gauge_10M'),
+                 ('Memory.JS', 'gauge_10M'),
+                 ('Memory.MainWebModule.DOM.HtmlScriptElement.Execute',
+                  'gauge_1M'), ('Memory.XHR', 'gauge_1M'),
+                 ('Memory.MainWebModule.ImageCache.Size', 'gauge_10M'),
+                 ('Renderer.SubmissionQueueSize', 'gauge')]
+
+
+def cobalt_read():
+  for name, type in tracked_stats:
+    report_cobalt_stat(name, type)
+
+
+def read(*args, **kwargs):
+  try:
+    cobalt_read()
+  except Exception:
+    reconnect()
+
+
+if collectd:
+  collectd.register_config(config)
+  collectd.register_init(init)
+  collectd.register_read(read)
+
+
+# Debugcode to verify plugin connection
+if __name__ == '__main__':
+  class Bunch:
+      def __init__(self, **kwds):
+          self.__dict__.update(kwds)
+  def debugprint(*args,**kwargs):
+    print('{!r} {!r}'.format(args,kwargs))
+  def debugvalues(**kwargs):
+    debugprint(**kwargs)
+    return Bunch(dispatch=debugprint,**kwargs)
+  collectd = Bunch(info=debugprint,warning=debugprint,Values=debugvalues)
+  parser = argparse.ArgumentParser()
+  parser.add_argument('--host', default='localhost')
+  parser.add_argument('--port', type=int, default=9222)
+  args = parser.parse_args()
+  conf = Bunch(children=[Bunch( key='address',
+    values=['{}:{}'.format(args.host,args.port)])])
+  conf_['collectd_conf']  = conf
+  init()
+  cobalt_read()
diff --git a/src/cobalt/tools/collectd/conf/CGP_conf.patch b/src/cobalt/tools/collectd/conf/CGP_conf.patch
new file mode 100644
index 0000000..75711a6
--- /dev/null
+++ b/src/cobalt/tools/collectd/conf/CGP_conf.patch
@@ -0,0 +1,28 @@
+--- /var/www/html/CGP/conf/config.php	2019-08-07 09:02:26.935953434 -0700
++++ conf/config.php	2019-08-07 08:41:05.058259144 -0700
+@@ -29,7 +29,7 @@
+ #$CONFIG['overview_filter']['interface'] = array('ti' => 'eth0', 't' => 'if_octets');
+ 
+ # default plugins time range
+-$CONFIG['time_range']['default'] = 86400;
++$CONFIG['time_range']['default'] = 3600 * 2;
+ $CONFIG['time_range']['uptime']  = 31536000;
+ 
+ # show load averages and used memory on overview page
+@@ -38,6 +38,7 @@
+ $CONFIG['showtime'] = false;
+ 
+ $CONFIG['term'] = array(
++	'30minute'=> 60 * 30,
+ 	'2hour'	 => 3600 * 2,
+ 	'8hour'	 => 3600 * 8,
+ 	'day'	 => 86400,
+@@ -51,7 +52,7 @@
+ $CONFIG['network_datasize'] = 'bytes';
+ 
+ # "png", "svg", "canvas" or "hybrid" (canvas on detail page, png on the others) graphs
+-$CONFIG['graph_type'] = 'png';
++$CONFIG['graph_type'] = 'hybrid';
+ 
+ # For canvas graphs, use 'async' or 'sync' fetch method
+ $CONFIG['rrd_fetch_method'] = 'sync';
diff --git a/src/cobalt/tools/collectd/conf/cobalt.conf.tmpl b/src/cobalt/tools/collectd/conf/cobalt.conf.tmpl
new file mode 100644
index 0000000..96f0a2b
--- /dev/null
+++ b/src/cobalt/tools/collectd/conf/cobalt.conf.tmpl
@@ -0,0 +1,34 @@
+# Copyright 2019 The Cobalt Authors. All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+<LoadPlugin python>
+    Globals true
+    Interval 10
+</LoadPlugin>
+
+TypesDB "##PLUGIN_DIR##/cobalt-types.db"
+
+<Plugin python>
+    ModulePath "##PLUGIN_DIR##"
+    LogTraces true
+    Import "cobalt"
+    <Module cobalt>
+       Address "localhost:9222"
+    </Module>
+</Plugin>
+
+# Tell processes plugin to look for processes named "cobalt"
+<Plugin "processes">
+    ProcessMatch "cobalt" "cobalt"
+</Plugin>
diff --git a/src/cobalt/tools/collectd/conf/csv.conf b/src/cobalt/tools/collectd/conf/csv.conf
new file mode 100644
index 0000000..f663285
--- /dev/null
+++ b/src/cobalt/tools/collectd/conf/csv.conf
@@ -0,0 +1,22 @@
+# Copyright 2019 The Cobalt Authors. All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+<LoadPlugin csv>
+    Interval 30
+</LoadPlugin>
+
+<Plugin "csv">
+  DataDir "/var/lib/collectd/csv"
+  StoreRates true
+</Plugin>
diff --git a/src/cobalt/tools/collectd/conf/rrd.conf b/src/cobalt/tools/collectd/conf/rrd.conf
new file mode 100644
index 0000000..2f96f34
--- /dev/null
+++ b/src/cobalt/tools/collectd/conf/rrd.conf
@@ -0,0 +1,21 @@
+# Copyright 2019 The Cobalt Authors. All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+<LoadPlugin rrdtool>
+    Interval 10
+</LoadPlugin>
+
+<Plugin rrdtool>
+    DataDir "/var/lib/collectd/rrd"
+</Plugin>
diff --git a/src/cobalt/tools/collectd/conf/standard_types.conf b/src/cobalt/tools/collectd/conf/standard_types.conf
new file mode 100644
index 0000000..c95cf60
--- /dev/null
+++ b/src/cobalt/tools/collectd/conf/standard_types.conf
@@ -0,0 +1,15 @@
+# Copyright 2019 The Cobalt Authors. All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+TypesDB "/usr/share/collectd/types.db"
diff --git a/src/cobalt/tools/collectd/doc/Collectd_crop.png b/src/cobalt/tools/collectd/doc/Collectd_crop.png
new file mode 100644
index 0000000..0161b11
--- /dev/null
+++ b/src/cobalt/tools/collectd/doc/Collectd_crop.png
Binary files differ
diff --git a/src/cobalt/tools/collectd/install.sh b/src/cobalt/tools/collectd/install.sh
new file mode 100755
index 0000000..d2ef017
--- /dev/null
+++ b/src/cobalt/tools/collectd/install.sh
@@ -0,0 +1,69 @@
+#!/bin/bash
+#
+# Copyright 2019 The Cobalt Authors. All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the 'License');
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an 'AS IS' BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+if [[ ${EUID} -ne 0 ]]; then
+   echo "This script must be run as root"
+   exit 1
+fi
+
+function print_msg() {
+    echo  '============= ' ${@} ' ============='
+}
+
+WEBROOT=/var/www/html
+CGP_ROOT=${WEBROOT}/CGP
+
+COLLECTD_CONF_DIR=/etc/collectd/collectd.conf.d
+RRD_ENABLED=1
+if [[ -d "/etc/collectd/google.conf.d" ]]; then
+    COLLECTD_CONF_DIR=/etc/collectd/google.conf.d
+    RRD_ENABLED=0
+fi
+
+
+print_msg "Installing apt deps"
+PKGS="collectd-core lighttpd libphp-jpgraph python-websocket"
+[[ ! -f /etc/collectd/collectd.conf ]] && PKGS="${PKGS} collectd"
+apt install ${PKGS}
+# grab the installed php version
+CGI_PKG=$(dpkg -l "*php*" | egrep -i "ii.*php.*-cli" | sed -E 's/.*(php.*-)(cli).*/\1cgi/')
+apt install ${CGI_PKG}
+
+
+print_msg "Checking out CGP from Github to: " ${CGP_ROOT}
+[[ ! -d "${CGP_ROOT}" ]] && git -C ${WEBROOT} clone https://github.com/pommi/CGP.git
+
+
+print_msg "Copying config files"
+sed 's@##PLUGIN_DIR##@'"${PWD}"'@' < conf/cobalt.conf.tmpl > /tmp/cobalt.conf
+cp -v /tmp/cobalt.conf ${COLLECTD_CONF_DIR}/cobalt.conf
+
+[[ "${RRD_ENABLED}" -eq "0" ]] && cp -v conf/rrd.conf ${COLLECTD_CONF_DIR}/
+cp -v conf/csv.conf ${COLLECTD_CONF_DIR}/
+# Change graph display defaults in CGP config
+patch --forward -r - ${CGP_ROOT}/conf/config.php < conf/CGP_conf.patch
+[[ "${RRD_ENABLED}" -eq "1" ]] && cp -v conf/standard_types.conf ${COLLECTD_CONF_DIR}/
+
+
+print_msg "Restarting services"
+lighty-enable-mod fastcgi fastcgi-php
+service collectd restart
+service lighttpd restart
+
+print_msg "Cobalt DevTools do not currently listen on 'localhost' or 127.0.0.1"
+print_msg "Please manually edit target IP address to your adapter IP address in " ${COLLECTD_CONF_DIR}/cobalt.conf
+ifconfig | egrep "inet " | sed -E "s/.*inet (.*) netmask.*/\1/" | egrep -v "127.0.0.1"
+
diff --git a/src/cobalt/websocket/cobalt_web_socket_event_handler.cc b/src/cobalt/websocket/cobalt_web_socket_event_handler.cc
index b389576..9654695 100644
--- a/src/cobalt/websocket/cobalt_web_socket_event_handler.cc
+++ b/src/cobalt/websocket/cobalt_web_socket_event_handler.cc
@@ -110,7 +110,7 @@
     std::unique_ptr<net::WebSocketEventInterface::SSLErrorCallbacks>
         ssl_error_callbacks,
     const GURL& /*url*/, const net::SSLInfo& /*ssl_info*/, bool /*fatal*/) {
-  // TODO[johnx]: determine if there are circumstances we want to continue
+  // TODO: determine if there are circumstances we want to continue
   // the request.
   DLOG(WARNING) << "SSL cert failure occured, cancelling connection";
   ssl_error_callbacks->CancelSSLRequest(net::ERR_BAD_SSL_CLIENT_AUTH_CERT,
diff --git a/src/cobalt/websocket/web_socket_event_interface.cc b/src/cobalt/websocket/web_socket_event_interface.cc
index a323111..f47ad29 100644
--- a/src/cobalt/websocket/web_socket_event_interface.cc
+++ b/src/cobalt/websocket/web_socket_event_interface.cc
@@ -106,7 +106,7 @@
 void CobaltWebSocketEventHandler::OnSSLCertificateError(
     std::unique_ptr<net::SSLErrorCallbacks> ssl_error_callbacks,
     const GURL& /*url*/, const SSLInfo& ssl_info, bool /*fatal*/) {
-  // TODO[johnx]: determine if there are circumstances we want to continue
+  // TODO: determine if there are circumstances we want to continue
   // the request.
   DLOG(WARNING) << "SSL cert failure occured, cancelling connection";
   ssl_error_callbacks->CancelSSLRequest(-1, ssl_info);
diff --git a/src/cobalt/websocket/web_socket_impl.cc b/src/cobalt/websocket/web_socket_impl.cc
index 39df930..5a920b4 100644
--- a/src/cobalt/websocket/web_socket_impl.cc
+++ b/src/cobalt/websocket/web_socket_impl.cc
@@ -212,7 +212,7 @@
     delegate_task_runner_->PostTask(FROM_HERE, do_send_closure);
   }
 
-  // TODO[johnx]:Change to void function?
+  // TODO: Change to void function?
   return true;
 }
 
diff --git a/src/cobalt/websocket/web_socket_impl.h b/src/cobalt/websocket/web_socket_impl.h
index 2786092..2a81b41 100644
--- a/src/cobalt/websocket/web_socket_impl.h
+++ b/src/cobalt/websocket/web_socket_impl.h
@@ -72,7 +72,7 @@
   void Close(const net::WebSocketError code, const std::string& reason);
 
   // These are legacy API from old net::SocketStream::Delegate.
-  // TODO[johnx]: investigate if we need to remove these.
+  // TODO: investigate if we need to remove these.
   // Called when the socket stream has been closed.
   void OnClose(bool was_clean = true,
                int error_code = net::kWebSocketNormalClosure,
diff --git a/src/net/cert/caching_cert_verifier.h b/src/net/cert/caching_cert_verifier.h
index 2ccc5cb..aacec7e 100644
--- a/src/net/cert/caching_cert_verifier.h
+++ b/src/net/cert/caching_cert_verifier.h
@@ -50,6 +50,14 @@
              const NetLogWithSource& net_log) override;
   void SetConfig(const Config& config) override;
 
+#if defined(STARBOARD) && defined(ENABLE_IGNORE_CERTIFICATE_ERRORS)
+  // Used to disable certificate verification errors for testing/development
+  // purpose.
+  void set_ignore_certificate_errors(bool ignore_certificate_errors) override {
+    verifier_->set_ignore_certificate_errors(ignore_certificate_errors);
+  }
+#endif
+
  private:
   FRIEND_TEST_ALL_PREFIXES(CachingCertVerifierTest, CacheHit);
   FRIEND_TEST_ALL_PREFIXES(CachingCertVerifierTest, Visitor);
diff --git a/src/net/cert/cert_verifier.h b/src/net/cert/cert_verifier.h
index 7a637bf..df852b1 100644
--- a/src/net/cert/cert_verifier.h
+++ b/src/net/cert/cert_verifier.h
@@ -181,6 +181,14 @@
   // the preferred underlying cryptographic libraries, using the specified
   // configuration.
   static std::unique_ptr<CertVerifier> CreateDefault();
+
+#if defined(STARBOARD) && defined(ENABLE_IGNORE_CERTIFICATE_ERRORS)
+  // Used to disable certificate verification errors for testing/development
+  // purpose.
+  virtual void set_ignore_certificate_errors(bool ignore_certificate_errors) {
+    NOTREACHED();
+  }
+#endif
 };
 
 // Overloads for comparing two configurations. Note, comparison is shallow -
diff --git a/src/net/cert/multi_threaded_cert_verifier.cc b/src/net/cert/multi_threaded_cert_verifier.cc
index 261c1a3..a513f01 100644
--- a/src/net/cert/multi_threaded_cert_verifier.cc
+++ b/src/net/cert/multi_threaded_cert_verifier.cc
@@ -235,7 +235,9 @@
   void set_is_first_job(bool is_first_job) { is_first_job_ = is_first_job; }
 
 #if defined(STARBOARD) && defined(ENABLE_IGNORE_CERTIFICATE_ERRORS)
-  void set_ignore_errors(bool ignore_errors) { ignore_errors_ = ignore_errors; }
+  void set_ignore_certificate_errors(bool ignore_certificate_errors) {
+    ignore_certificate_errors_ = ignore_certificate_errors;
+  }
 #endif
 
   const CertVerifier::RequestParams& key() const { return key_; }
@@ -321,7 +323,7 @@
         cert_verifier_->RemoveJob(this);
 
 #if defined(STARBOARD) && defined(ENABLE_IGNORE_CERTIFICATE_ERRORS)
-    if (ignore_errors_) {
+    if (ignore_certificate_errors_) {
       verify_result->result.verified_cert = key_.certificate();
       verify_result->result.cert_status = MapNetErrorToCertStatus(OK);
       verify_result->error = OK;
@@ -358,7 +360,7 @@
 
   bool is_first_job_;
 #if defined(STARBOARD) && defined(ENABLE_IGNORE_CERTIFICATE_ERRORS)
-  bool ignore_errors_ = false;
+  bool ignore_certificate_errors_ = false;
 #endif
   base::WeakPtrFactory<CertVerifierJob> weak_ptr_factory_;
 };
@@ -407,7 +409,7 @@
     std::unique_ptr<CertVerifierJob> new_job =
         std::make_unique<CertVerifierJob>(params, net_log.net_log(), this);
 #if defined(STARBOARD) && defined(ENABLE_IGNORE_CERTIFICATE_ERRORS)
-    new_job->set_ignore_errors(ignore_errors_);
+    new_job->set_ignore_certificate_errors(ignore_certificate_errors_);
 #endif
 
     new_job->Start(verify_proc_, config_, config_id_);
diff --git a/src/net/cert/multi_threaded_cert_verifier.h b/src/net/cert/multi_threaded_cert_verifier.h
index a5cd9dd..b8c6cd0 100644
--- a/src/net/cert/multi_threaded_cert_verifier.h
+++ b/src/net/cert/multi_threaded_cert_verifier.h
@@ -68,7 +68,9 @@
 #if defined(STARBOARD) && defined(ENABLE_IGNORE_CERTIFICATE_ERRORS)
   // Used to disable certificate verification errors for testing/developerment
   // purpose.
-  void set_ignore_errors(bool ignore_errors) { ignore_errors_ = ignore_errors; }
+  void set_ignore_certificate_errors(bool ignore_certificate_errors) {
+    ignore_certificate_errors_ = ignore_certificate_errors;
+  }
 #endif
 
  private:
@@ -131,7 +133,7 @@
   bool should_record_histograms_ = true;
 
 #if defined(STARBOARD) && defined(ENABLE_IGNORE_CERTIFICATE_ERRORS)
-  bool ignore_errors_ = false;
+  bool ignore_certificate_errors_ = false;
 #endif
 
   THREAD_CHECKER(thread_checker_);
diff --git a/src/net/http/http_network_session.cc b/src/net/http/http_network_session.cc
index e1ff8c6..0415c27 100644
--- a/src/net/http/http_network_session.cc
+++ b/src/net/http/http_network_session.cc
@@ -274,7 +274,6 @@
       http_stream_factory_(std::make_unique<HttpStreamFactory>(this)),
       params_(params),
       context_(context) {
-
   DCHECK(proxy_resolution_service_);
   DCHECK(ssl_config_service_);
   CHECK(http_server_properties_);
@@ -555,6 +554,12 @@
   params_.enable_quic = false;
 }
 
+#if defined(STARBOARD)
+void HttpNetworkSession::ToggleQuic() {
+  params_.enable_quic = !params_.enable_quic;
+}
+#endif  // defined(STARBOARD)
+
 ClientSocketPoolManager* HttpNetworkSession::GetSocketPoolManager(
     SocketPoolType pool_type) {
   switch (pool_type) {
diff --git a/src/net/http/http_network_session.h b/src/net/http/http_network_session.h
index 7c72310..ded46f4 100644
--- a/src/net/http/http_network_session.h
+++ b/src/net/http/http_network_session.h
@@ -400,6 +400,11 @@
   // Disable QUIC for new streams.
   void DisableQuic();
 
+#if defined(STARBOARD)
+  // Toggle QUIC support for new streams.
+  void ToggleQuic();
+#endif  // defined(STARBOARD)
+
  private:
   friend class HttpNetworkSessionPeer;
 
diff --git a/src/net/log/net_log_with_source.cc b/src/net/log/net_log_with_source.cc
index 50020e5..a4ad7e1 100644
--- a/src/net/log/net_log_with_source.cc
+++ b/src/net/log/net_log_with_source.cc
@@ -94,7 +94,6 @@
 
 void NetLogWithSource::AddEventWithNetErrorCode(NetLogEventType event_type,
                                                 int net_error) const {
-  DCHECK_NE(ERR_IO_PENDING, net_error);
   if (net_error >= 0) {
     AddEvent(event_type);
   } else {
diff --git a/src/net/socket/udp_socket_starboard.cc b/src/net/socket/udp_socket_starboard.cc
index d63b047..707fb74 100644
--- a/src/net/socket/udp_socket_starboard.cc
+++ b/src/net/socket/udp_socket_starboard.cc
@@ -163,6 +163,12 @@
           &read_socket_watcher_, &read_watcher_)) {
     PLOG(ERROR) << "WatchSocket failed on read";
     Error result = MapLastSocketError(socket_);
+    if (result == ERR_IO_PENDING) {
+      // Watch(...) might call SbSocketWaiterAdd() which does not guarantee
+      // setting system error on failure, but we need to treat this as an
+      // error since watching the socket failed.
+      result = ERR_FAILED;
+    }
     LogRead(result, NULL, NULL);
     return result;
   }
@@ -801,7 +807,9 @@
   DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
   DCHECK(SbSocketIsValid(socket_));
 
-  NOTIMPLEMENTED();
+  // Starboard does not supported sending non-fragmented packets yet.
+  // All QUIC Streams call this function at initialization, setting sockets to
+  // send non-fragmented packets may have a slight performance boost.
   return ERR_NOT_IMPLEMENTED;
 }
 
diff --git a/src/net/spdy/spdy_proxy_client_socket_unittest.cc b/src/net/spdy/spdy_proxy_client_socket_unittest.cc
index 3b7a5b1..8952ca8 100644
--- a/src/net/spdy/spdy_proxy_client_socket_unittest.cc
+++ b/src/net/spdy/spdy_proxy_client_socket_unittest.cc
@@ -880,7 +880,11 @@
   AssertSyncReadEquals(kMsg2, kLen2);
 }
 
+#if defined(STARBOARD)
+TEST_P(SpdyProxyClientSocketTest, FLAKY_ReadErrorResponseBody) {
+#else
 TEST_P(SpdyProxyClientSocketTest, ReadErrorResponseBody) {
+#endif
   spdy::SpdySerializedFrame conn(ConstructConnectRequestFrame());
   MockWrite writes[] = {
       CreateMockWrite(conn, 0, SYNCHRONOUS),
diff --git a/src/starboard/CHANGELOG.md b/src/starboard/CHANGELOG.md
index b9bb48b..b4e9fe3 100644
--- a/src/starboard/CHANGELOG.md
+++ b/src/starboard/CHANGELOG.md
@@ -82,7 +82,10 @@
 The system properties `kSbSystemPropertyCertificationScope` and
 `kSbSystemPropertyBase64EncodedCertificationSecret` have been added to enable
 client apps to perform device authentication.  The values will be queried by
-calls to `SbSystemGetProperty()` in `starboard/system.h`.
+calls to `SbSystemGetProperty()` in `starboard/system.h`. An alternative to
+providing the `kSbSystemPropertyBase64EncodedCertificationSecret` property is
+to implement the SbSystemSignWithCertificationSecretKey() function, enabling
+the key to remain private and secure.
 
 ### Add support for `SbThreadSampler` and `SbThreadContext`.
 
@@ -153,6 +156,14 @@
 CPU features are available, which can enable the application to perform certain
 CPU-specific optimizations (e.g. SIMD).
 
+### Deprecated SB_HAS_AUDIO_SPECIFIC_CONFIG_AS_POINTER and
+SB_HAS_DRM_KEY_STATUSES.
+
+These macros must always be set to 1 for Starboard version 6 or later. They will
+be removed in a future version.  Any implementation that supports Starboard
+version 6 or later should be modified to no longer depend on these macros, with
+the assumption that their values are always 1.
+
 
 ## Version 10
 
@@ -622,3 +633,9 @@
 ### Mark `SbSystemBreakIntoDebugger` `SB_NORETURN`.
 Add `SB_NORETURN` to declaration of `SbSystemBreakIntoDebugger`, to allow it to
 be used in a manner similar to `abort`.
+
+### Introduce `SbAudioSinkGetMinBufferSizeInFrames()`
+
+Introduce `SbAudioSinkGetMinBufferSizeInFrames()` to `starboard/audio_sink.h`
+which communicates to the platform how many audio frames are required to ensure
+that audio sink can keep playing without underflow.
diff --git a/src/starboard/android/apk/app/src/main/java/dev/cobalt/media/AudioOutputManager.java b/src/starboard/android/apk/app/src/main/java/dev/cobalt/media/AudioOutputManager.java
index 0a72bc8..2105e5b 100644
--- a/src/starboard/android/apk/app/src/main/java/dev/cobalt/media/AudioOutputManager.java
+++ b/src/starboard/android/apk/app/src/main/java/dev/cobalt/media/AudioOutputManager.java
@@ -46,9 +46,9 @@
   @SuppressWarnings("unused")
   @UsedByNative
   AudioTrackBridge createAudioTrackBridge(
-      int sampleType, int sampleRate, int channelCount, int framesPerChannel) {
+      int sampleType, int sampleRate, int channelCount, int preferredBufferSizeInBytes) {
     AudioTrackBridge audioTrackBridge =
-        new AudioTrackBridge(sampleType, sampleRate, channelCount, framesPerChannel);
+        new AudioTrackBridge(sampleType, sampleRate, channelCount, preferredBufferSizeInBytes);
     if (!audioTrackBridge.isAudioTrackValid()) {
       Log.e(TAG, "AudioTrackBridge has invalid audio track");
       return null;
diff --git a/src/starboard/android/apk/app/src/main/java/dev/cobalt/media/AudioTrackBridge.java b/src/starboard/android/apk/app/src/main/java/dev/cobalt/media/AudioTrackBridge.java
index 733cf2b..ec1fd88 100644
--- a/src/starboard/android/apk/app/src/main/java/dev/cobalt/media/AudioTrackBridge.java
+++ b/src/starboard/android/apk/app/src/main/java/dev/cobalt/media/AudioTrackBridge.java
@@ -16,6 +16,7 @@
 
 import static dev.cobalt.media.Log.TAG;
 
+import android.annotation.TargetApi;
 import android.media.AudioAttributes;
 import android.media.AudioFormat;
 import android.media.AudioManager;
@@ -35,24 +36,8 @@
   private AudioTimestamp audioTimestamp = new AudioTimestamp();
   private long maxFramePositionSoFar = 0;
 
-  private int GetFrameSize(int sampleType, int channelCount) {
-    switch (sampleType) {
-      case AudioFormat.ENCODING_PCM_16BIT:
-        {
-          return 2 * channelCount;
-        }
-      case AudioFormat.ENCODING_PCM_FLOAT:
-        {
-          return 4 * channelCount;
-        }
-      default:
-        {
-          throw new RuntimeException("Unsupported sample type: " + sampleType);
-        }
-    }
-  }
-
-  public AudioTrackBridge(int sampleType, int sampleRate, int channelCount, int framesPerChannel) {
+  public AudioTrackBridge(
+      int sampleType, int sampleRate, int channelCount, int preferredBufferSizeInBytes) {
     int channelConfig;
     switch (channelCount) {
       case 1:
@@ -80,33 +65,16 @@
             .setChannelMask(channelConfig)
             .build();
 
-    // Try to create AudioTrack with the same size buffer as in renderer. But AudioTrack would not
-    // start playing until the buffer is fully filled once. A large buffer may cause
-    // AudioTrack not able to start. And we now pass no more than 1s of audio data to
-    // starboard player, limit the buffer size to store at most 0.5s of audio data.
-    int audioTrackBufferSize =
-        Math.min(framesPerChannel, sampleRate / 2) * GetFrameSize(sampleType, channelCount);
+    int audioTrackBufferSize = preferredBufferSizeInBytes;
     while (audioTrackBufferSize > 0) {
       try {
-        if (Build.VERSION.SDK_INT >= 26) {
-          audioTrack =
-              new AudioTrack.Builder()
-                  .setAudioAttributes(attributes)
-                  .setAudioFormat(format)
-                  .setBufferSizeInBytes(audioTrackBufferSize)
-                  .setTransferMode(AudioTrack.MODE_STREAM)
-                  .setSessionId(AudioManager.AUDIO_SESSION_ID_GENERATE)
-                  .setPerformanceMode(AudioTrack.PERFORMANCE_MODE_LOW_LATENCY)
-                  .build();
-        } else {
-          audioTrack =
-              new AudioTrack(
-                  attributes,
-                  format,
-                  audioTrackBufferSize,
-                  AudioTrack.MODE_STREAM,
-                  AudioManager.AUDIO_SESSION_ID_GENERATE);
-        }
+        audioTrack =
+            new AudioTrack(
+                attributes,
+                format,
+                audioTrackBufferSize,
+                AudioTrack.MODE_STREAM,
+                AudioManager.AUDIO_SESSION_ID_GENERATE);
       } catch (Exception e) {
         audioTrack = null;
       }
@@ -120,8 +88,10 @@
     Log.i(
         TAG,
         String.format(
-            "AudioTrack created with buffer size %d.  The minimum buffer size is %d.",
+            "AudioTrack created with buffer size %d (prefered: %d).  The minimum buffer size is"
+                + " %d.",
             audioTrackBufferSize,
+            preferredBufferSizeInBytes,
             AudioTrack.getMinBufferSize(sampleRate, channelConfig, sampleType)));
   }
 
@@ -232,4 +202,23 @@
 
     return audioTimestamp;
   }
+
+  @SuppressWarnings("unused")
+  @UsedByNative
+  private int getUnderrunCount() {
+    if (Build.VERSION.SDK_INT >= 24) {
+      return getUnderrunCountV24();
+    }
+    // The funtion getUnderrunCount() is added in API level 24.
+    return 0;
+  }
+
+  @TargetApi(24)
+  private int getUnderrunCountV24() {
+    if (audioTrack == null) {
+      Log.e(TAG, "Unable to call getUnderrunCount() with NULL audio track.");
+      return 0;
+    }
+    return audioTrack.getUnderrunCount();
+  }
 }
diff --git a/src/starboard/android/apk/app/src/main/java/dev/cobalt/media/CobaltMediaSession.java b/src/starboard/android/apk/app/src/main/java/dev/cobalt/media/CobaltMediaSession.java
index 8ca2a31..a0e687b 100644
--- a/src/starboard/android/apk/app/src/main/java/dev/cobalt/media/CobaltMediaSession.java
+++ b/src/starboard/android/apk/app/src/main/java/dev/cobalt/media/CobaltMediaSession.java
@@ -24,12 +24,12 @@
 import android.media.AudioAttributes.Builder;
 import android.media.AudioFocusRequest;
 import android.media.AudioManager;
-import android.media.MediaMetadata;
-import android.media.session.MediaSession;
-import android.media.session.PlaybackState;
 import android.os.Build;
 import android.os.Handler;
 import android.os.Looper;
+import android.support.v4.media.MediaMetadataCompat;
+import android.support.v4.media.session.MediaSessionCompat;
+import android.support.v4.media.session.PlaybackStateCompat;
 import android.view.WindowManager;
 import dev.cobalt.util.DisplayUtil;
 import dev.cobalt.util.Holder;
@@ -47,7 +47,7 @@
   // deprecated and unnecessary on API 26+.
   @SuppressWarnings("deprecation")
   private static final int MEDIA_SESSION_FLAG_HANDLES_TRANSPORT_CONTROLS =
-      MediaSession.FLAG_HANDLES_TRANSPORT_CONTROLS;
+      MediaSessionCompat.FLAG_HANDLES_TRANSPORT_CONTROLS;
 
   private AudioFocusRequest audioFocusRequest;
 
@@ -69,15 +69,15 @@
 
   private final UpdateVolumeListener volumeListener;
   private final ArtworkLoader artworkLoader;
-  private MediaSession mediaSession;
+  private MediaSessionCompat mediaSession;
 
   // We re-use the builder to hold onto the most recent metadata and add artwork later.
-  private MediaMetadata.Builder metadataBuilder = new MediaMetadata.Builder();
+  private MediaMetadataCompat.Builder metadataBuilder = new MediaMetadataCompat.Builder();
   // We re-use the builder to hold onto the most recent playback state.
-  private PlaybackState.Builder playbackStateBuilder = new PlaybackState.Builder();
+  private PlaybackStateCompat.Builder playbackStateBuilder = new PlaybackStateCompat.Builder();
 
   // Duplicated in starboard/android/shared/android_media_session_client.h
-  // PlaybackState
+  // PlaybackStateCompat
   private static final int PLAYBACK_STATE_PLAYING = 0;
   private static final int PLAYBACK_STATE_PAUSED = 1;
   private static final int PLAYBACK_STATE_NONE = 2;
@@ -99,50 +99,56 @@
   }
 
   private void setMediaSession() {
-    mediaSession = new MediaSession(context, TAG);
+    mediaSession = new MediaSessionCompat(context, TAG);
     mediaSession.setFlags(MEDIA_SESSION_FLAG_HANDLES_TRANSPORT_CONTROLS);
     mediaSession.setCallback(
-        new MediaSession.Callback() {
+        new MediaSessionCompat.Callback() {
           @Override
           public void onFastForward() {
             Log.i(TAG, "MediaSession action: FAST FORWARD");
-            nativeInvokeAction(PlaybackState.ACTION_FAST_FORWARD);
+            nativeInvokeAction(PlaybackStateCompat.ACTION_FAST_FORWARD);
           }
 
           @Override
           public void onPause() {
             Log.i(TAG, "MediaSession action: PAUSE");
-            nativeInvokeAction(PlaybackState.ACTION_PAUSE);
+            nativeInvokeAction(PlaybackStateCompat.ACTION_PAUSE);
           }
 
           @Override
           public void onPlay() {
             Log.i(TAG, "MediaSession action: PLAY");
-            nativeInvokeAction(PlaybackState.ACTION_PLAY);
+            nativeInvokeAction(PlaybackStateCompat.ACTION_PLAY);
           }
 
           @Override
           public void onRewind() {
             Log.i(TAG, "MediaSession action: REWIND");
-            nativeInvokeAction(PlaybackState.ACTION_REWIND);
+            nativeInvokeAction(PlaybackStateCompat.ACTION_REWIND);
           }
 
           @Override
           public void onSkipToNext() {
             Log.i(TAG, "MediaSession action: SKIP NEXT");
-            nativeInvokeAction(PlaybackState.ACTION_SKIP_TO_NEXT);
+            nativeInvokeAction(PlaybackStateCompat.ACTION_SKIP_TO_NEXT);
           }
 
           @Override
           public void onSkipToPrevious() {
             Log.i(TAG, "MediaSession action: SKIP PREVIOUS");
-            nativeInvokeAction(PlaybackState.ACTION_SKIP_TO_PREVIOUS);
+            nativeInvokeAction(PlaybackStateCompat.ACTION_SKIP_TO_PREVIOUS);
           }
 
           @Override
           public void onSeekTo(long pos) {
             Log.i(TAG, "MediaSession action: SEEK " + pos);
-            nativeInvokeAction(PlaybackState.ACTION_SEEK_TO, pos);
+            nativeInvokeAction(PlaybackStateCompat.ACTION_SEEK_TO, pos);
+          }
+
+          @Override
+          public void onStop() {
+            Log.i(TAG, "MediaSession action: STOP");
+            nativeInvokeAction(PlaybackStateCompat.ACTION_STOP);
           }
         });
     // |metadataBuilder| may still have no fields at this point, yielding empty metadata.
@@ -209,7 +215,7 @@
       // This shouldn't happen, but pause playback to be nice if it does.
       if (res != AudioManager.AUDIOFOCUS_REQUEST_GRANTED) {
         Log.w(TAG, "Audiofocus action: PAUSE (not granted)");
-        nativeInvokeAction(PlaybackState.ACTION_PAUSE);
+        nativeInvokeAction(PlaybackStateCompat.ACTION_PAUSE);
       }
     } else {
       if (Build.VERSION.SDK_INT < 26) {
@@ -264,7 +270,7 @@
         Log.i(TAG, "Audiofocus loss" + logExtra);
         if (playbackState == PLAYBACK_STATE_PLAYING) {
           Log.i(TAG, "Audiofocus action: PAUSE");
-          nativeInvokeAction(PlaybackState.ACTION_PAUSE);
+          nativeInvokeAction(PlaybackStateCompat.ACTION_PAUSE);
         }
         break;
       case AudioManager.AUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK:
@@ -281,7 +287,7 @@
         volumeListener.onUpdateVolume(1.0f);
         if (transientPause && playbackState == PLAYBACK_STATE_PAUSED) {
           Log.i(TAG, "Audiofocus action: PLAY");
-          nativeInvokeAction(PlaybackState.ACTION_PLAY);
+          nativeInvokeAction(PlaybackStateCompat.ACTION_PLAY);
         }
         break;
       default: // fall out
@@ -334,7 +340,7 @@
     // be none the wiser.
     playbackStateBuilder.setState(
         playbackState,
-        PlaybackState.PLAYBACK_POSITION_UNKNOWN,
+        PlaybackStateCompat.PLAYBACK_POSITION_UNKNOWN,
         playbackState == PLAYBACK_STATE_PLAYING ? 1.0f : 0.0f);
     configureMediaFocus(PLAYBACK_STATE_NONE);
   }
@@ -359,8 +365,7 @@
           @Override
           public void run() {
             updateMediaSessionInternal(
-                playbackState, actions, positionMs, speed,
-                title, artist, album, artwork);
+                playbackState, actions, positionMs, speed, title, artist, album, artwork);
           }
         });
   }
@@ -398,43 +403,46 @@
     String stateName;
     switch (playbackState) {
       case PLAYBACK_STATE_PLAYING:
-        androidPlaybackState = PlaybackState.STATE_PLAYING;
+        androidPlaybackState = PlaybackStateCompat.STATE_PLAYING;
         stateName = "PLAYING";
         break;
       case PLAYBACK_STATE_PAUSED:
-        androidPlaybackState = PlaybackState.STATE_PAUSED;
+        androidPlaybackState = PlaybackStateCompat.STATE_PAUSED;
         stateName = "PAUSED";
         break;
       case PLAYBACK_STATE_NONE:
       default:
-        androidPlaybackState = PlaybackState.STATE_NONE;
+        androidPlaybackState = PlaybackStateCompat.STATE_NONE;
         stateName = "NONE";
         break;
     }
 
-    Log.i(TAG, String.format(
-        "MediaSession state: %s, position: %d ms, speed: %f x", stateName, positionMs, speed));
+    Log.i(
+        TAG,
+        String.format(
+            "MediaSession state: %s, position: %d ms, speed: %f x", stateName, positionMs, speed));
 
     playbackStateBuilder =
-        new PlaybackState.Builder()
+        new PlaybackStateCompat.Builder()
             .setActions(actions)
             .setState(androidPlaybackState, positionMs, speed);
     mediaSession.setPlaybackState(playbackStateBuilder.build());
 
     // Reset the metadata to make sure we don't retain any fields from previous playback.
-    metadataBuilder = new MediaMetadata.Builder();
+    metadataBuilder = new MediaMetadataCompat.Builder();
     metadataBuilder
-        .putString(MediaMetadata.METADATA_KEY_TITLE, title)
-        .putString(MediaMetadata.METADATA_KEY_ARTIST, artist)
-        .putString(MediaMetadata.METADATA_KEY_ALBUM, album)
-        .putBitmap(MediaMetadata.METADATA_KEY_ALBUM_ART, artworkLoader.getOrLoadArtwork(artwork));
+        .putString(MediaMetadataCompat.METADATA_KEY_TITLE, title)
+        .putString(MediaMetadataCompat.METADATA_KEY_ARTIST, artist)
+        .putString(MediaMetadataCompat.METADATA_KEY_ALBUM, album)
+        .putBitmap(
+            MediaMetadataCompat.METADATA_KEY_ALBUM_ART, artworkLoader.getOrLoadArtwork(artwork));
     // Update the metadata as soon as we can - even before artwork is loaded.
     mediaSession.setMetadata(metadataBuilder.build());
   }
 
   @Override
   public void onArtworkLoaded(Bitmap bitmap) {
-    metadataBuilder.putBitmap(MediaMetadata.METADATA_KEY_ALBUM_ART, bitmap);
+    metadataBuilder.putBitmap(MediaMetadataCompat.METADATA_KEY_ALBUM_ART, bitmap);
     mediaSession.setMetadata(metadataBuilder.build());
   }
 }
diff --git a/src/starboard/android/apk/app/src/main/java/dev/cobalt/media/MediaCodecBridge.java b/src/starboard/android/apk/app/src/main/java/dev/cobalt/media/MediaCodecBridge.java
index 3be35ef..63d27d8 100644
--- a/src/starboard/android/apk/app/src/main/java/dev/cobalt/media/MediaCodecBridge.java
+++ b/src/starboard/android/apk/app/src/main/java/dev/cobalt/media/MediaCodecBridge.java
@@ -499,7 +499,10 @@
       Log.d(TAG, "Setting HDR info.");
       mediaFormat.setInteger(MediaFormat.KEY_COLOR_TRANSFER, colorInfo.colorTransfer);
       mediaFormat.setInteger(MediaFormat.KEY_COLOR_STANDARD, colorInfo.colorStandard);
-      mediaFormat.setInteger(MediaFormat.KEY_COLOR_RANGE, colorInfo.colorRange);
+      // If color range is unspecified, don't set it.
+      if (colorInfo.colorRange != 0) {
+        mediaFormat.setInteger(MediaFormat.KEY_COLOR_RANGE, colorInfo.colorRange);
+      }
       mediaFormat.setByteBuffer(MediaFormat.KEY_HDR_STATIC_INFO, colorInfo.hdrStaticInfo);
     }
 
@@ -548,28 +551,6 @@
 
   @SuppressWarnings("unused")
   @UsedByNative
-  private void dequeueInputBuffer(long timeoutUs, DequeueInputResult outDequeueInputResult) {
-    int status = MEDIA_CODEC_ERROR;
-    int index = -1;
-    try {
-      int indexOrStatus = mMediaCodec.dequeueInputBuffer(timeoutUs);
-      if (indexOrStatus >= 0) { // index!
-        status = MEDIA_CODEC_OK;
-        index = indexOrStatus;
-      } else if (indexOrStatus == MediaCodec.INFO_TRY_AGAIN_LATER) {
-        status = MEDIA_CODEC_DEQUEUE_INPUT_AGAIN_LATER;
-      } else {
-        throw new AssertionError("Unexpected index_or_status: " + indexOrStatus);
-      }
-    } catch (Exception e) {
-      Log.e(TAG, "Failed to dequeue input buffer", e);
-    }
-    outDequeueInputResult.mStatus = status;
-    outDequeueInputResult.mIndex = index;
-  }
-
-  @SuppressWarnings("unused")
-  @UsedByNative
   private int flush() {
     try {
       mFlushed = true;
@@ -778,47 +759,6 @@
     }
   }
 
-  @SuppressWarnings({"unused", "deprecation"})
-  @UsedByNative
-  private void dequeueOutputBuffer(long timeoutUs, DequeueOutputResult outDequeueOutputResult) {
-    int status = MEDIA_CODEC_ERROR;
-    int index = -1;
-    try {
-      int indexOrStatus = mMediaCodec.dequeueOutputBuffer(info, timeoutUs);
-      if (info.presentationTimeUs < mLastPresentationTimeUs) {
-        // TODO: return a special code through DequeueOutputResult
-        // to notify the native code that the frame has a wrong presentation
-        // timestamp and should be skipped.
-        info.presentationTimeUs = mLastPresentationTimeUs;
-      }
-      mLastPresentationTimeUs = info.presentationTimeUs;
-
-      if (indexOrStatus >= 0) { // index!
-        status = MEDIA_CODEC_OK;
-        index = indexOrStatus;
-      } else if (indexOrStatus == MediaCodec.INFO_OUTPUT_BUFFERS_CHANGED) {
-        status = MEDIA_CODEC_OUTPUT_BUFFERS_CHANGED;
-      } else if (indexOrStatus == MediaCodec.INFO_OUTPUT_FORMAT_CHANGED) {
-        status = MEDIA_CODEC_OUTPUT_FORMAT_CHANGED;
-        MediaFormat newFormat = mMediaCodec.getOutputFormat();
-      } else if (indexOrStatus == MediaCodec.INFO_TRY_AGAIN_LATER) {
-        status = MEDIA_CODEC_DEQUEUE_OUTPUT_AGAIN_LATER;
-      } else {
-        throw new AssertionError("Unexpected index_or_status: " + indexOrStatus);
-      }
-    } catch (IllegalStateException e) {
-      status = MEDIA_CODEC_ERROR;
-      Log.e(TAG, "Failed to dequeue output buffer", e);
-    }
-
-    outDequeueOutputResult.mStatus = status;
-    outDequeueOutputResult.mIndex = index;
-    outDequeueOutputResult.mFlags = info.flags;
-    outDequeueOutputResult.mOffset = info.offset;
-    outDequeueOutputResult.mPresentationTimeMicroseconds = info.presentationTimeUs;
-    outDequeueOutputResult.mNumBytes = info.size;
-  }
-
   @SuppressWarnings("unused")
   @UsedByNative
   private boolean configureVideo(
diff --git a/src/starboard/android/apk/app/src/main/java/dev/cobalt/media/VideoSurfaceTexture.java b/src/starboard/android/apk/app/src/main/java/dev/cobalt/media/VideoSurfaceTexture.java
new file mode 100644
index 0000000..6987021
--- /dev/null
+++ b/src/starboard/android/apk/app/src/main/java/dev/cobalt/media/VideoSurfaceTexture.java
@@ -0,0 +1,46 @@
+// Copyright 2019 The Cobalt Authors. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package dev.cobalt.media;
+
+import android.graphics.SurfaceTexture;
+import dev.cobalt.util.UsedByNative;
+
+// A wrapper of SurfaceTexture class.
+// VideoSurfaceTexture allows native code to receive OnFrameAvailable event.
+@UsedByNative
+public class VideoSurfaceTexture extends SurfaceTexture {
+  @UsedByNative
+  VideoSurfaceTexture(int texName) {
+    super(texName);
+  }
+
+  @UsedByNative
+  void setOnFrameAvailableListener(final long nativeVideoDecoder) {
+    super.setOnFrameAvailableListener(
+        new SurfaceTexture.OnFrameAvailableListener() {
+          @Override
+          public void onFrameAvailable(SurfaceTexture surfaceTexture) {
+            nativeOnFrameAvailable(nativeVideoDecoder);
+          }
+        });
+  }
+
+  @UsedByNative
+  void removeOnFrameAvailableListener() {
+    super.setOnFrameAvailableListener(null);
+  }
+
+  private native void nativeOnFrameAvailable(long nativeVideoDecoder);
+}
diff --git a/src/starboard/android/apk/build.id b/src/starboard/android/apk/build.id
index 80c1e89..4c97ae0 100644
--- a/src/starboard/android/apk/build.id
+++ b/src/starboard/android/apk/build.id
@@ -1 +1 @@
-217501
\ No newline at end of file
+220597
\ No newline at end of file
diff --git a/src/starboard/android/shared/audio_sink_get_min_buffer_size_in_frames.cc b/src/starboard/android/shared/audio_sink_get_min_buffer_size_in_frames.cc
new file mode 100644
index 0000000..2bd7c3f
--- /dev/null
+++ b/src/starboard/android/shared/audio_sink_get_min_buffer_size_in_frames.cc
@@ -0,0 +1,43 @@
+// Copyright 2019 The Cobalt Authors. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#include "starboard/audio_sink.h"
+
+#include "starboard/android/shared/audio_track_audio_sink_type.h"
+#include "starboard/common/log.h"
+
+int SbAudioSinkGetMinBufferSizeInFrames(int channels,
+                                        SbMediaAudioSampleType sample_type,
+                                        int sampling_frequency_hz) {
+  // Currently, we only use |min_required_frames_| for web audio, which
+  // only supports 48k mono or stereo sound.
+  SB_DCHECK(sampling_frequency_hz == 48000);
+
+  if (channels <= 0 || channels > SbAudioSinkGetMaxChannels()) {
+    SB_LOG(ERROR) << "Not support channels count " << channels;
+    return -1;
+  }
+  if (sample_type != kSbMediaAudioSampleTypeInt16Deprecated &&
+      sample_type != kSbMediaAudioSampleTypeFloat32) {
+    SB_LOG(ERROR) << "Not support sample type " << sample_type;
+    return -1;
+  }
+  if (sampling_frequency_hz <= 0) {
+    SB_LOG(ERROR) << "Not support sample frequency " << sampling_frequency_hz;
+    return -1;
+  }
+
+  return starboard::android::shared::AudioTrackAudioSinkType::
+      GetMinBufferSizeInFrames(channels, sample_type, sampling_frequency_hz);
+}
diff --git a/src/starboard/android/shared/audio_sink_min_required_frames_tester.cc b/src/starboard/android/shared/audio_sink_min_required_frames_tester.cc
new file mode 100644
index 0000000..e9a87a3
--- /dev/null
+++ b/src/starboard/android/shared/audio_sink_min_required_frames_tester.cc
@@ -0,0 +1,224 @@
+// Copyright 2019 The Cobalt Authors. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#include "starboard/android/shared/audio_sink_min_required_frames_tester.h"
+
+#include <vector>
+
+#include "starboard/android/shared/audio_track_audio_sink_type.h"
+
+namespace starboard {
+namespace android {
+namespace shared {
+
+namespace {
+const int kCheckpointFramesInterval = 1024;
+
+// Helper function to compute the size of the two valid starboard audio sample
+// types.
+size_t GetSampleSize(SbMediaAudioSampleType sample_type) {
+  switch (sample_type) {
+    case kSbMediaAudioSampleTypeFloat32:
+      return sizeof(float);
+    case kSbMediaAudioSampleTypeInt16Deprecated:
+      return sizeof(int16_t);
+  }
+  SB_NOTREACHED();
+  return 0u;
+}
+}  // namespace
+
+MinRequiredFramesTester::MinRequiredFramesTester(int audio_sink_buffer_size,
+                                                 int max_required_frames,
+                                                 int default_required_frames,
+                                                 int required_frames_increment,
+                                                 int min_stable_played_frames)
+    : audio_sink_buffer_size_(audio_sink_buffer_size),
+      max_required_frames_(max_required_frames),
+      default_required_frames_(default_required_frames),
+      required_frames_increment_(required_frames_increment),
+      min_stable_played_frames_(min_stable_played_frames),
+      condition_variable_(mutex_),
+      destroyed_(false) {}
+
+MinRequiredFramesTester::~MinRequiredFramesTester() {
+  SB_DCHECK(thread_checker_.CalledOnValidThread());
+  destroyed_.store(true);
+  if (SbThreadIsValid(tester_thread_)) {
+    {
+      ScopedLock scoped_lock(mutex_);
+      condition_variable_.Signal();
+    }
+    SbThreadJoin(tester_thread_, NULL);
+    tester_thread_ = kSbThreadInvalid;
+  }
+}
+
+void MinRequiredFramesTester::StartTest(
+    int number_of_channels,
+    SbMediaAudioSampleType sample_type,
+    int sample_rate,
+    OnMinRequiredFramesReceivedCallback received_cb) {
+  SB_DCHECK(thread_checker_.CalledOnValidThread());
+  // MinRequiredFramesTester only supports to do test once now.
+  SB_DCHECK(!SbThreadIsValid(tester_thread_));
+
+  number_of_channels_ = number_of_channels;
+  sample_type_ = sample_type;
+  sample_rate_ = sample_rate;
+  received_cb_ = received_cb;
+
+  tester_thread_ =
+      SbThreadCreate(0, kSbThreadPriorityLowest, kSbThreadNoAffinity, true,
+                     "audio_track_tester",
+                     &MinRequiredFramesTester::TesterThreadEntryPoint, this);
+  SB_DCHECK(SbThreadIsValid(tester_thread_));
+}
+
+// static
+void* MinRequiredFramesTester::TesterThreadEntryPoint(void* context) {
+  SB_DCHECK(context);
+  MinRequiredFramesTester* tester =
+      static_cast<MinRequiredFramesTester*>(context);
+  tester->TesterThreadFunc();
+  return NULL;
+}
+
+void MinRequiredFramesTester::TesterThreadFunc() {
+  bool wait_timeout = false;
+  // Currently, we only support test once. But we can put following codes in
+  // a for loop easily to support test multiple times.
+  std::vector<uint8_t> silence_buffer(
+      max_required_frames_ * number_of_channels_ * GetSampleSize(sample_type_),
+      0);
+  void* frame_buffers[1];
+  frame_buffers[0] = silence_buffer.data();
+  // Set default values.
+  min_required_frames_ = default_required_frames_;
+  total_consumed_frames_ = 0;
+  last_underrun_count_ = -1;
+  last_total_consumed_frames_ = 0;
+  {
+    ScopedLock scoped_lock(mutex_);
+    // Need to check |destroyed_| before start, as MinRequiredFramesTester may
+    // be destroyed immediately after tester thread started.
+    if (!destroyed_.load()) {
+      audio_sink_ = new AudioTrackAudioSink(
+          NULL, number_of_channels_, sample_rate_, sample_type_, frame_buffers,
+          max_required_frames_,
+          audio_sink_buffer_size_ * number_of_channels_ *
+              GetSampleSize(sample_type_),
+          &MinRequiredFramesTester::UpdateSourceStatusFunc,
+          &MinRequiredFramesTester::ConsumeFramesFunc, this);
+      wait_timeout = !condition_variable_.WaitTimed(kSbTimeSecond * 5);
+      if (wait_timeout) {
+        SB_LOG(ERROR) << "Audio sink min required frames tester timeout.";
+        SB_NOTREACHED();
+      }
+    }
+  }
+  delete audio_sink_;
+  audio_sink_ = nullptr;
+  // Call |received_cb_| after audio sink thread is ended.
+  // |number_of_channels_|, |sample_type_|, |sample_rate_| and
+  // |min_required_frames_| are shared between two threads.
+  if (!destroyed_.load() && !wait_timeout) {
+    received_cb_(number_of_channels_, sample_type_, sample_rate_,
+                 min_required_frames_);
+  }
+}
+
+// static
+void MinRequiredFramesTester::UpdateSourceStatusFunc(int* frames_in_buffer,
+                                                     int* offset_in_frames,
+                                                     bool* is_playing,
+                                                     bool* is_eos_reached,
+                                                     void* context) {
+  MinRequiredFramesTester* tester =
+      static_cast<MinRequiredFramesTester*>(context);
+  SB_DCHECK(tester);
+  SB_DCHECK(frames_in_buffer);
+  SB_DCHECK(offset_in_frames);
+  SB_DCHECK(is_playing);
+  SB_DCHECK(is_eos_reached);
+
+  tester->UpdateSourceStatus(frames_in_buffer, offset_in_frames, is_playing,
+                             is_eos_reached);
+}
+
+// static
+void MinRequiredFramesTester::ConsumeFramesFunc(int frames_consumed,
+                                                SbTime frames_consumed_at,
+                                                void* context) {
+  SB_UNREFERENCED_PARAMETER(frames_consumed_at);
+
+  MinRequiredFramesTester* tester =
+      static_cast<MinRequiredFramesTester*>(context);
+  SB_DCHECK(tester);
+
+  tester->ConsumeFrames(frames_consumed);
+}
+
+void MinRequiredFramesTester::UpdateSourceStatus(int* frames_in_buffer,
+                                                 int* offset_in_frames,
+                                                 bool* is_playing,
+                                                 bool* is_eos_reached) {
+  *frames_in_buffer = min_required_frames_;
+  *offset_in_frames = 0;
+  *is_playing = true;
+  *is_eos_reached = false;
+}
+
+void MinRequiredFramesTester::ConsumeFrames(int frames_consumed) {
+  total_consumed_frames_ += frames_consumed;
+  // Wait until played enough frames.
+  if (total_consumed_frames_ - kCheckpointFramesInterval <
+      last_total_consumed_frames_) {
+    return;
+  }
+  if (last_underrun_count_ == -1) {
+    // |last_underrun_count_| is unknown, record the current underrun count
+    // and start to observe the underrun count.
+    last_underrun_count_ = audio_sink_->GetUnderrunCount();
+    last_total_consumed_frames_ = total_consumed_frames_;
+    return;
+  }
+  // The playback should be played for a while. If we still get new underruns,
+  // we need to write more buffers into audio sink.
+  int underrun_count = audio_sink_->GetUnderrunCount();
+  if (underrun_count > last_underrun_count_) {
+    min_required_frames_ += required_frames_increment_;
+    if (min_required_frames_ >= max_required_frames_) {
+      SB_LOG(WARNING) << "Min required frames reached maximum.";
+    } else {
+      last_underrun_count_ = -1;
+      last_total_consumed_frames_ = total_consumed_frames_;
+      return;
+    }
+  }
+
+  if (min_required_frames_ >= max_required_frames_ ||
+      total_consumed_frames_ - min_stable_played_frames_ >=
+          last_total_consumed_frames_) {
+    // |min_required_frames_| reached maximum, or playback is stable and
+    // doesn't have underruns. Stop the test.
+    last_total_consumed_frames_ = INT_MAX;
+    ScopedLock scoped_lock(mutex_);
+    condition_variable_.Signal();
+  }
+}
+
+}  // namespace shared
+}  // namespace android
+}  // namespace starboard
diff --git a/src/starboard/android/shared/audio_sink_min_required_frames_tester.h b/src/starboard/android/shared/audio_sink_min_required_frames_tester.h
new file mode 100644
index 0000000..9e53134
--- /dev/null
+++ b/src/starboard/android/shared/audio_sink_min_required_frames_tester.h
@@ -0,0 +1,109 @@
+// Copyright 2019 The Cobalt Authors. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#ifndef STARBOARD_ANDROID_SHARED_AUDIO_SINK_MIN_REQUIRED_FRAMES_TESTER_H_
+#define STARBOARD_ANDROID_SHARED_AUDIO_SINK_MIN_REQUIRED_FRAMES_TESTER_H_
+
+#include <atomic>
+#include <functional>
+
+#include "starboard/common/condition_variable.h"
+#include "starboard/common/mutex.h"
+#include "starboard/media.h"
+#include "starboard/shared/starboard/thread_checker.h"
+#include "starboard/thread.h"
+
+namespace starboard {
+namespace android {
+namespace shared {
+
+class AudioTrackAudioSink;
+
+// The class is to detect min required frames for audio sink to play audio
+// without underflow.
+class MinRequiredFramesTester {
+ public:
+  typedef std::function<void(int number_of_channels,
+                             SbMediaAudioSampleType sample_type,
+                             int sample_rate,
+                             int min_required_frames)>
+      OnMinRequiredFramesReceivedCallback;
+
+  MinRequiredFramesTester(int audio_sink_buffer_size,
+                          int max_required_frames,
+                          int default_required_frames,
+                          int required_frames_increment,
+                          int min_stable_played_frames);
+  ~MinRequiredFramesTester();
+
+  void StartTest(int number_of_channels,
+                 SbMediaAudioSampleType sample_type,
+                 int sample_rate,
+                 OnMinRequiredFramesReceivedCallback received_cb);
+
+ private:
+  static void* TesterThreadEntryPoint(void* context);
+  void TesterThreadFunc();
+
+  static void UpdateSourceStatusFunc(int* frames_in_buffer,
+                                     int* offset_in_frames,
+                                     bool* is_playing,
+                                     bool* is_eos_reached,
+                                     void* context);
+  static void ConsumeFramesFunc(int frames_consumed,
+                                SbTime frames_consumed_at,
+                                void* context);
+  void UpdateSourceStatus(int* frames_in_buffer,
+                          int* offset_in_frames,
+                          bool* is_playing,
+                          bool* is_eos_reached);
+  void ConsumeFrames(int frames_consumed);
+
+  MinRequiredFramesTester(const MinRequiredFramesTester&) = delete;
+  MinRequiredFramesTester& operator=(const MinRequiredFramesTester&) = delete;
+
+  const int audio_sink_buffer_size_;
+  const int max_required_frames_;
+  const int default_required_frames_;
+  const int required_frames_increment_;
+  const int min_stable_played_frames_;
+
+  ::starboard::shared::starboard::ThreadChecker thread_checker_;
+
+  // Shared variables between tester thread and audio sink thread.
+  AudioTrackAudioSink* audio_sink_ = nullptr;
+  int number_of_channels_;
+  SbMediaAudioSampleType sample_type_;
+  int sample_rate_;
+  int min_required_frames_;
+
+  // Used only by tester thread.
+  OnMinRequiredFramesReceivedCallback received_cb_;
+
+  // Used only by audio sink thread.
+  int total_consumed_frames_;
+  int last_underrun_count_;
+  int last_total_consumed_frames_;
+
+  Mutex mutex_;
+  ConditionVariable condition_variable_;
+  SbThread tester_thread_ = kSbThreadInvalid;
+  std::atomic_bool destroyed_;
+};
+
+}  // namespace shared
+}  // namespace android
+}  // namespace starboard
+
+#endif  // STARBOARD_ANDROID_SHARED_AUDIO_SINK_MIN_REQUIRED_FRAMES_TESTER_H_
diff --git a/src/starboard/android/shared/audio_track_audio_sink_type.cc b/src/starboard/android/shared/audio_track_audio_sink_type.cc
index 24f1c5f..994d904 100644
--- a/src/starboard/android/shared/audio_track_audio_sink_type.cc
+++ b/src/starboard/android/shared/audio_track_audio_sink_type.cc
@@ -15,13 +15,12 @@
 #include "starboard/android/shared/audio_track_audio_sink_type.h"
 
 #include <algorithm>
-#include <deque>
+#include <vector>
 
-#include "starboard/android/shared/jni_env_ext.h"
-#include "starboard/android/shared/jni_utils.h"
-#include "starboard/common/mutex.h"
-#include "starboard/common/scoped_ptr.h"
-#include "starboard/thread.h"
+namespace {
+starboard::android::shared::AudioTrackAudioSinkType*
+    audio_track_audio_sink_type_;
+}
 
 namespace starboard {
 namespace android {
@@ -33,13 +32,14 @@
 // we will repeatedly allocate a large byte array which cannot be consumed by
 // audio track completely.
 const int kMaxFramesPerRequest = 65536;
-
 const jint kNoOffset = 0;
-
 const size_t kSilenceFramesPerAppend = 1024;
-// 6 (max channels) * 4 (max sample size) * kSilenceFramesPerAppend, the number
-// is to ensure we always have at least 1024 frames silence to write.
-const uint8_t kSilenceBuffer[24 * kSilenceFramesPerAppend] = {0};
+
+const int kAudioSinkBufferSize = 4 * 1024;
+const int kMaxRequiredFrames = 16 * 1024;
+const int kDefaultRequiredFrames = 8 * 1024;
+const int kRequiredFramesIncrement = 2 * 1024;
+const int kMinStablePlayedFrames = 12 * 1024;
 
 // Helper function to compute the size of the two valid starboard audio sample
 // types.
@@ -71,62 +71,7 @@
   return static_cast<uint8_t*>(pointer) + offset;
 }
 
-class AudioTrackAudioSink : public SbAudioSinkPrivate {
- public:
-  AudioTrackAudioSink(
-      Type* type,
-      int channels,
-      int sampling_frequency_hz,
-      SbMediaAudioSampleType sample_type,
-      SbAudioSinkFrameBuffers frame_buffers,
-      int frames_per_channel,
-      SbAudioSinkUpdateSourceStatusFunc update_source_status_func,
-      SbAudioSinkConsumeFramesFunc consume_frame_func,
-      void* context);
-  ~AudioTrackAudioSink() override;
-
-  bool IsAudioTrackValid() const { return j_audio_track_bridge_; }
-  bool IsType(Type* type) override { return type_ == type; }
-  void SetPlaybackRate(double playback_rate) override {
-    SB_DCHECK(playback_rate >= 0.0);
-    if (playback_rate != 0.0 && playback_rate != 1.0) {
-      SB_NOTIMPLEMENTED() << "TODO: Only playback rates of 0.0 and 1.0 are "
-                             "currently supported.";
-      playback_rate = (playback_rate > 0.0) ? 1.0 : 0.0;
-    }
-    ScopedLock lock(mutex_);
-    playback_rate_ = playback_rate;
-  }
-
-  void SetVolume(double volume) override;
-
- private:
-  static void* ThreadEntryPoint(void* context);
-  void AudioThreadFunc();
-
-  int WriteData(JniEnvExt* env, const void* buffer, int size);
-
-  Type* type_;
-  int channels_;
-  int sampling_frequency_hz_;
-  SbMediaAudioSampleType sample_type_;
-  void* frame_buffer_;
-  int frames_per_channel_;
-  SbAudioSinkUpdateSourceStatusFunc update_source_status_func_;
-  SbAudioSinkConsumeFramesFunc consume_frame_func_;
-  void* context_;
-  int last_playback_head_position_;
-  jobject j_audio_track_bridge_;
-  jobject j_audio_data_;
-
-  volatile bool quit_;
-  SbThread audio_out_thread_;
-
-  starboard::Mutex mutex_;
-  double playback_rate_;
-
-  int written_frames_;
-};
+}  // namespace
 
 AudioTrackAudioSink::AudioTrackAudioSink(
     Type* type,
@@ -135,6 +80,7 @@
     SbMediaAudioSampleType sample_type,
     SbAudioSinkFrameBuffers frame_buffers,
     int frames_per_channel,
+    int preferred_buffer_size,
     SbAudioSinkUpdateSourceStatusFunc update_source_status_func,
     SbAudioSinkConsumeFramesFunc consume_frame_func,
     void* context)
@@ -167,7 +113,7 @@
       j_audio_output_manager.Get(), "createAudioTrackBridge",
       "(IIII)Ldev/cobalt/media/AudioTrackBridge;",
       GetAudioFormatSampleType(sample_type_), sampling_frequency_hz_, channels_,
-      frames_per_channel);
+      preferred_buffer_size);
   if (!j_audio_track_bridge) {
     return;
   }
@@ -214,6 +160,17 @@
   }
 }
 
+void AudioTrackAudioSink::SetPlaybackRate(double playback_rate) {
+  SB_DCHECK(playback_rate >= 0.0);
+  if (playback_rate != 0.0 && playback_rate != 1.0) {
+    SB_NOTIMPLEMENTED() << "TODO: Only playback rates of 0.0 and 1.0 are "
+                           "currently supported.";
+    playback_rate = (playback_rate > 0.0) ? 1.0 : 0.0;
+  }
+  ScopedLock lock(mutex_);
+  playback_rate_ = playback_rate;
+}
+
 // static
 void* AudioTrackAudioSink::ThreadEntryPoint(void* context) {
   SB_DCHECK(context);
@@ -305,8 +262,11 @@
       // its buffer is fully filled once.
       if (is_eos_reached) {
         // Currently AudioDevice and AudioRenderer will write tail silence.
-        // It should be reached only in tests.
-        WriteData(env, kSilenceBuffer, kSilenceFramesPerAppend);
+        // It should be reached only in tests. It's not ideal to allocate
+        // a new silence buffer every time.
+        std::vector<uint8_t> silence_buffer(
+            channels_ * GetSampleSize(sample_type_) * kSilenceFramesPerAppend);
+        WriteData(env, silence_buffer.data(), kSilenceFramesPerAppend);
       }
       SbThreadSleep(10 * kSbTimeMillisecond);
       continue;
@@ -384,7 +344,30 @@
   }
 }
 
-}  // namespace
+int AudioTrackAudioSink::GetUnderrunCount() {
+  auto* env = JniEnvExt::Get();
+  jint underrun_count = env->CallIntMethodOrAbort(j_audio_track_bridge_,
+                                                  "getUnderrunCount", "()I");
+  return underrun_count;
+}
+
+// static
+int AudioTrackAudioSinkType::GetMinBufferSizeInFrames(
+    int channels,
+    SbMediaAudioSampleType sample_type,
+    int sampling_frequency_hz) {
+  SB_DCHECK(audio_track_audio_sink_type_);
+
+  return audio_track_audio_sink_type_->min_required_frames_.load();
+}
+
+AudioTrackAudioSinkType::AudioTrackAudioSinkType()
+    : min_required_frames_tester_(kAudioSinkBufferSize,
+                                  kMaxRequiredFrames,
+                                  kDefaultRequiredFrames,
+                                  kRequiredFramesIncrement,
+                                  kMinStablePlayedFrames),
+      min_required_frames_(kMaxRequiredFrames) {}
 
 SbAudioSink AudioTrackAudioSinkType::Create(
     int channels,
@@ -396,10 +379,18 @@
     SbAudioSinkUpdateSourceStatusFunc update_source_status_func,
     SbAudioSinkConsumeFramesFunc consume_frames_func,
     void* context) {
+  // Try to create AudioTrack with the same size buffer as in renderer. But
+  // AudioTrack would not start playing until the buffer is fully filled once. A
+  // large buffer may cause AudioTrack not able to start. And Cobalt now write
+  // no more than 1s of audio data and no more than 0.5 ahead to starboard
+  // player, limit the buffer size to store at most 0.5s of audio data.
+  int preferred_buffer_size =
+      std::min(frames_per_channel, sampling_frequency_hz / 2) * channels *
+      GetSampleSize(audio_sample_type);
   AudioTrackAudioSink* audio_sink = new AudioTrackAudioSink(
       this, channels, sampling_frequency_hz, audio_sample_type, frame_buffers,
-      frames_per_channel, update_source_status_func, consume_frames_func,
-      context);
+      frames_per_channel, preferred_buffer_size, update_source_status_func,
+      consume_frames_func, context);
   if (!audio_sink->IsAudioTrackValid()) {
     SB_DLOG(ERROR)
         << "AudioTrackAudioSinkType::Create failed to create audio track";
@@ -409,14 +400,33 @@
   return audio_sink;
 }
 
+void AudioTrackAudioSinkType::TestMinRequiredFrames() {
+  auto onMinRequiredFramesForWebAudioReceived =
+      [&](int number_of_channels, SbMediaAudioSampleType sample_type,
+          int sample_rate, int min_required_frames) {
+        SB_LOG(INFO) << "Received min required frames " << min_required_frames
+                     << " for " << number_of_channels << " channels, "
+                     << sample_rate << "hz.";
+        min_required_frames_.store(min_required_frames);
+      };
+
+  SbMediaAudioSampleType sample_type = kSbMediaAudioSampleTypeFloat32;
+  if (!SbAudioSinkIsAudioSampleTypeSupported(sample_type)) {
+    sample_type = kSbMediaAudioSampleTypeInt16Deprecated;
+    SB_DCHECK(SbAudioSinkIsAudioSampleTypeSupported(sample_type));
+  }
+
+  // Currently, cobalt only use |min_required_frames_| for web audio, which
+  // only supports 48k mono or stereo sound. It should be fine now to only
+  // test 48k stereo sound.
+  min_required_frames_tester_.StartTest(2, sample_type, 48000,
+                                        onMinRequiredFramesForWebAudioReceived);
+}
+
 }  // namespace shared
 }  // namespace android
 }  // namespace starboard
 
-namespace {
-SbAudioSinkPrivate::Type* audio_track_audio_sink_type_;
-}  // namespace
-
 // static
 void SbAudioSinkPrivate::PlatformInitialize() {
   SB_DCHECK(!audio_track_audio_sink_type_);
@@ -424,6 +434,7 @@
       new starboard::android::shared::AudioTrackAudioSinkType;
   SetPrimaryType(audio_track_audio_sink_type_);
   EnableFallbackToStub();
+  audio_track_audio_sink_type_->TestMinRequiredFrames();
 }
 
 // static
diff --git a/src/starboard/android/shared/audio_track_audio_sink_type.h b/src/starboard/android/shared/audio_track_audio_sink_type.h
index ef53d9f..821a146 100644
--- a/src/starboard/android/shared/audio_track_audio_sink_type.h
+++ b/src/starboard/android/shared/audio_track_audio_sink_type.h
@@ -15,11 +15,20 @@
 #ifndef STARBOARD_ANDROID_SHARED_AUDIO_TRACK_AUDIO_SINK_TYPE_H_
 #define STARBOARD_ANDROID_SHARED_AUDIO_TRACK_AUDIO_SINK_TYPE_H_
 
+#include <atomic>
+#include <functional>
+
+#include "starboard/android/shared/audio_sink_min_required_frames_tester.h"
+#include "starboard/android/shared/jni_env_ext.h"
+#include "starboard/android/shared/jni_utils.h"
 #include "starboard/audio_sink.h"
 #include "starboard/common/log.h"
+#include "starboard/common/mutex.h"
+#include "starboard/common/scoped_ptr.h"
 #include "starboard/configuration.h"
 #include "starboard/shared/internal_only.h"
 #include "starboard/shared/starboard/audio_sink/audio_sink_internal.h"
+#include "starboard/thread.h"
 
 namespace starboard {
 namespace android {
@@ -27,6 +36,12 @@
 
 class AudioTrackAudioSinkType : public SbAudioSinkPrivate::Type {
  public:
+  static int GetMinBufferSizeInFrames(int channels,
+                                      SbMediaAudioSampleType sample_type,
+                                      int sampling_frequency_hz);
+
+  AudioTrackAudioSinkType();
+
   SbAudioSink Create(
       int channels,
       int sampling_frequency_hz,
@@ -49,6 +64,62 @@
     }
     delete audio_sink;
   }
+
+  void TestMinRequiredFrames();
+
+ private:
+  std::atomic_int min_required_frames_;
+  MinRequiredFramesTester min_required_frames_tester_;
+};
+
+class AudioTrackAudioSink : public SbAudioSinkPrivate {
+ public:
+  AudioTrackAudioSink(
+      Type* type,
+      int channels,
+      int sampling_frequency_hz,
+      SbMediaAudioSampleType sample_type,
+      SbAudioSinkFrameBuffers frame_buffers,
+      int frames_per_channel,
+      int preferred_buffer_size,
+      SbAudioSinkUpdateSourceStatusFunc update_source_status_func,
+      SbAudioSinkConsumeFramesFunc consume_frame_func,
+      void* context);
+  ~AudioTrackAudioSink() override;
+
+  bool IsAudioTrackValid() const { return j_audio_track_bridge_; }
+  bool IsType(Type* type) override { return type_ == type; }
+  void SetPlaybackRate(double playback_rate) override;
+
+  void SetVolume(double volume) override;
+  int GetUnderrunCount();
+
+ private:
+  static void* ThreadEntryPoint(void* context);
+  void AudioThreadFunc();
+
+  int WriteData(JniEnvExt* env, const void* buffer, int size);
+
+  Type* type_;
+  int channels_;
+  int sampling_frequency_hz_;
+  SbMediaAudioSampleType sample_type_;
+  void* frame_buffer_;
+  int frames_per_channel_;
+  SbAudioSinkUpdateSourceStatusFunc update_source_status_func_;
+  SbAudioSinkConsumeFramesFunc consume_frame_func_;
+  void* context_;
+  int last_playback_head_position_;
+  jobject j_audio_track_bridge_;
+  jobject j_audio_data_;
+
+  volatile bool quit_;
+  SbThread audio_out_thread_;
+
+  starboard::Mutex mutex_;
+  double playback_rate_;
+
+  int written_frames_;
 };
 
 }  // namespace shared
diff --git a/src/starboard/android/shared/cobalt/android_media_session_client.cc b/src/starboard/android/shared/cobalt/android_media_session_client.cc
index 87f4f9f..0b4b5c1 100644
--- a/src/starboard/android/shared/cobalt/android_media_session_client.cc
+++ b/src/starboard/android/shared/cobalt/android_media_session_client.cc
@@ -23,7 +23,6 @@
 #include "starboard/common/log.h"
 #include "starboard/common/mutex.h"
 #include "starboard/once.h"
-#include "starboard/player.h"
 
 namespace starboard {
 namespace android {
@@ -43,6 +42,7 @@
 using ::cobalt::media_session::kMediaSessionActionSeekto;
 using ::cobalt::media_session::kMediaSessionActionSeekbackward;
 using ::cobalt::media_session::kMediaSessionActionSeekforward;
+using ::cobalt::media_session::kMediaSessionActionStop;
 using ::cobalt::media_session::kMediaSessionActionPrevioustrack;
 using ::cobalt::media_session::kMediaSessionActionNexttrack;
 using ::cobalt::media_session::kMediaSessionPlaybackStateNone;
@@ -57,7 +57,7 @@
 namespace {
 
 // These constants are from android.media.session.PlaybackState
-const jlong kPlaybackStateActionStop = 1 << 0;  // not supported
+const jlong kPlaybackStateActionStop = 1 << 0;
 const jlong kPlaybackStateActionPause = 1 << 1;
 const jlong kPlaybackStateActionPlay = 1 << 2;
 const jlong kPlaybackStateActionRewind = 1 << 3;
@@ -93,6 +93,9 @@
   if (actions[kMediaSessionActionSeekto]) {
     result |= kPlaybackStateActionSeekTo;
   }
+  if (actions[kMediaSessionActionStop]) {
+    result |= kPlaybackStateActionStop;
+  }
   return result;
 }
 
@@ -132,6 +135,9 @@
     case kPlaybackStateActionSeekTo:
       result = kMediaSessionActionSeekto;
       break;
+    case kPlaybackStateActionStop:
+      result = kMediaSessionActionStop;
+      break;
     default:
       SB_NOTREACHED() << "Unsupported MediaSessionAction 0x"
                       << std::hex << action;
@@ -171,10 +177,6 @@
   // Protected by "mutex"
   static AndroidMediaSessionClient* active_client;
 
-  // TODO: Pass the necessary info through web MediaSession so we don't need to
-  // short-circuit to the player implementation to get info about the playback.
-  static SbPlayer active_player;
-
   static void OnceInit() { SbMutexCreate(&mutex); }
 
  public:
@@ -208,15 +210,6 @@
     SbMutexRelease(&mutex);
   }
 
-  static void UpdateActiveSessionPlatformPlayer(SbPlayer player) {
-    SbOnce(&once_flag, OnceInit);
-    SbMutexAcquire(&mutex);
-
-    active_player = player;
-
-    SbMutexRelease(&mutex);
-  }
-
   AndroidMediaSessionClient() {}
 
   virtual ~AndroidMediaSessionClient() {
@@ -242,12 +235,6 @@
     } else if (active_client == this) {
       active_client = NULL;
     }
-
-    SbPlayerInfo2 player_info;
-    SbMemorySet(&player_info, 0, sizeof(player_info));
-    if (active_player != kSbPlayerInvalid) {
-      SbPlayerGetInfo2(active_player, &player_info);
-    }
     SbMutexRelease(&mutex);
 
     jlong playback_state_actions = MediaSessionActionsToPlaybackStateActions(
@@ -307,8 +294,8 @@
         "(IJJFLjava/lang/String;Ljava/lang/String;Ljava/lang/String;"
             "[Ldev/cobalt/media/MediaImage;)V",
         playback_state, playback_state_actions,
-        player_info.current_media_timestamp / kSbTimeMillisecond,
-        static_cast<jfloat>(player_info.playback_rate),
+        session_state.current_playback_position() / kSbTimeMillisecond,
+        static_cast<jfloat>(session_state.actual_playback_rate()),
         j_title.Get(), j_artist.Get(), j_album.Get(), j_artwork.Get());
   }
 };
@@ -316,7 +303,6 @@
 SbOnceControl AndroidMediaSessionClient::once_flag = SB_ONCE_INITIALIZER;
 SbMutex AndroidMediaSessionClient::mutex;
 AndroidMediaSessionClient* AndroidMediaSessionClient::active_client = NULL;
-SbPlayer AndroidMediaSessionClient::active_player = kSbPlayerInvalid;
 
 void UpdateActiveSessionPlatformPlaybackState(PlaybackState state) {
   MediaSessionPlaybackState media_session_state =
@@ -326,10 +312,6 @@
       media_session_state);
 }
 
-void UpdateActiveSessionPlatformPlayer(SbPlayer player) {
-  AndroidMediaSessionClient::UpdateActiveSessionPlatformPlayer(player);
-}
-
 }  // namespace cobalt
 }  // namespace shared
 }  // namespace android
diff --git a/src/starboard/android/shared/cobalt/android_media_session_client.h b/src/starboard/android/shared/cobalt/android_media_session_client.h
index 284e165..5fc3f41 100644
--- a/src/starboard/android/shared/cobalt/android_media_session_client.h
+++ b/src/starboard/android/shared/cobalt/android_media_session_client.h
@@ -15,8 +15,6 @@
 #ifndef STARBOARD_ANDROID_SHARED_COBALT_ANDROID_MEDIA_SESSION_CLIENT_H_
 #define STARBOARD_ANDROID_SHARED_COBALT_ANDROID_MEDIA_SESSION_CLIENT_H_
 
-#include "starboard/player.h"
-
 namespace starboard {
 namespace android {
 namespace shared {
@@ -27,10 +25,6 @@
 
 void UpdateActiveSessionPlatformPlaybackState(PlaybackState state);
 
-// TODO: Pass the necessary info through web MediaSession so we don't need to
-// short-circuit to the player implementation to get info about the playback.
-void UpdateActiveSessionPlatformPlayer(SbPlayer player);
-
 }  // namespace cobalt
 }  // namespace shared
 }  // namespace android
diff --git a/src/starboard/android/shared/decode_target_create.cc b/src/starboard/android/shared/decode_target_create.cc
index 9b6f900..f54f90b 100644
--- a/src/starboard/android/shared/decode_target_create.cc
+++ b/src/starboard/android/shared/decode_target_create.cc
@@ -37,7 +37,7 @@
   JniEnvExt* env = JniEnvExt::Get();
 
   jobject local_surface_texture = env->NewObjectOrAbort(
-      "android/graphics/SurfaceTexture", "(I)V", gl_texture_id);
+      "dev/cobalt/media/VideoSurfaceTexture", "(I)V", gl_texture_id);
 
   jobject global_surface_texture =
       env->ConvertLocalRefToGlobalRef(local_surface_texture);
diff --git a/src/starboard/android/shared/drm_system.cc b/src/starboard/android/shared/drm_system.cc
index d1212c6..943633e 100644
--- a/src/starboard/android/shared/drm_system.cc
+++ b/src/starboard/android/shared/drm_system.cc
@@ -36,6 +36,26 @@
 const jint MEDIA_DRM_KEY_STATUS_PENDING = 3;
 const jint MEDIA_DRM_KEY_STATUS_USABLE = 0;
 
+// They must have the same values as defined in MediaDrm.KeyRequest.
+const jint REQUEST_TYPE_INITIAL = 0;
+const jint REQUEST_TYPE_RENEWAL = 1;
+const jint REQUEST_TYPE_RELEASE = 2;
+
+SbDrmSessionRequestType SbDrmSessionRequestTypeFromMediaDrmKeyRequestType(
+    jint request_type) {
+  if (request_type == REQUEST_TYPE_INITIAL) {
+    return kSbDrmSessionRequestTypeLicenseRequest;
+  }
+  if (request_type == REQUEST_TYPE_RENEWAL) {
+    return kSbDrmSessionRequestTypeLicenseRenewal;
+  }
+  if (request_type == REQUEST_TYPE_RELEASE) {
+    return kSbDrmSessionRequestTypeLicenseRelease;
+  }
+  SB_NOTREACHED();
+  return kSbDrmSessionRequestTypeLicenseRequest;
+}
+
 }  // namespace
 
 // This has to be defined outside the above anonymous namespace to be picked up
@@ -68,9 +88,10 @@
 
   DrmSystem* drm_system = reinterpret_cast<DrmSystem*>(native_media_drm_bridge);
   SB_DCHECK(drm_system);
-  drm_system->CallUpdateRequestCallback(ticket, session_id_elements,
-                                        session_id_size, message_elements,
-                                        message_size, kNoUrl);
+  drm_system->CallUpdateRequestCallback(
+      ticket, SbDrmSessionRequestTypeFromMediaDrmKeyRequestType(request_type),
+      session_id_elements, session_id_size, message_elements, message_size,
+      kNoUrl);
   env->ReleaseByteArrayElements(j_session_id, session_id_elements, JNI_ABORT);
   env->ReleaseByteArrayElements(j_message, message_elements, JNI_ABORT);
 }
@@ -255,15 +276,15 @@
 }
 
 void DrmSystem::CallUpdateRequestCallback(int ticket,
+                                          SbDrmSessionRequestType request_type,
                                           const void* session_id,
                                           int session_id_size,
                                           const void* content,
                                           int content_size,
                                           const char* url) {
   update_request_callback_(this, context_, ticket, kSbDrmStatusSuccess,
-                           kSbDrmSessionRequestTypeLicenseRequest, NULL,
-                           session_id, session_id_size, content, content_size,
-                           url);
+                           request_type, NULL, session_id, session_id_size,
+                           content, content_size, url);
 }
 
 void DrmSystem::CallDrmSessionKeyStatusesChangedCallback(
diff --git a/src/starboard/android/shared/drm_system.h b/src/starboard/android/shared/drm_system.h
index 49d5c72..9bdd875 100644
--- a/src/starboard/android/shared/drm_system.h
+++ b/src/starboard/android/shared/drm_system.h
@@ -61,6 +61,7 @@
 
   jobject GetMediaCrypto() const { return j_media_crypto_; }
   void CallUpdateRequestCallback(int ticket,
+                                 SbDrmSessionRequestType request_type,
                                  const void* session_id,
                                  int session_id_size,
                                  const void* content,
diff --git a/src/starboard/android/shared/gyp_configuration.py b/src/starboard/android/shared/gyp_configuration.py
index d674f72..8fc3c9b 100644
--- a/src/starboard/android/shared/gyp_configuration.py
+++ b/src/starboard/android/shared/gyp_configuration.py
@@ -274,30 +274,13 @@
   # A map of failing or crashing tests per target.
   __FILTERED_TESTS = {  # pylint: disable=invalid-name
       'player_filter_tests': [
-          'VideoDecoderTests/VideoDecoderTest.DecodeFullGOP/0',
-          'VideoDecoderTests/VideoDecoderTest.DecodeFullGOP/1',
-          'VideoDecoderTests/VideoDecoderTest.DecodeFullGOP/2',
-          'VideoDecoderTests/VideoDecoderTest.DecodeFullGOP/3',
-          'VideoDecoderTests/VideoDecoderTest.EndOfStreamWithoutAnyInput/0',
-          'VideoDecoderTests/VideoDecoderTest.EndOfStreamWithoutAnyInput/1',
-          'VideoDecoderTests/VideoDecoderTest.EndOfStreamWithoutAnyInput/2',
-          'VideoDecoderTests/VideoDecoderTest.EndOfStreamWithoutAnyInput/3',
-          'VideoDecoderTests/VideoDecoderTest'
-          '.GetCurrentDecodeTargetBeforeWriteInputBuffer/0',
-          'VideoDecoderTests/VideoDecoderTest'
-          '.GetCurrentDecodeTargetBeforeWriteInputBuffer/2',
-          'VideoDecoderTests/VideoDecoderTest.HoldFramesUntilFull/0',
-          'VideoDecoderTests/VideoDecoderTest.HoldFramesUntilFull/1',
-          'VideoDecoderTests/VideoDecoderTest.ResetBeforeInput/0',
-          'VideoDecoderTests/VideoDecoderTest.ResetBeforeInput/1',
-          'VideoDecoderTests/VideoDecoderTest.ResetBeforeInput/2',
-          'VideoDecoderTests/VideoDecoderTest.ResetBeforeInput/3',
-          'VideoDecoderTests/VideoDecoderTest.Preroll/0',
-          'VideoDecoderTests/VideoDecoderTest.Preroll/1',
-          'VideoDecoderTests/VideoDecoderTest.SingleInput/0',
-          'VideoDecoderTests/VideoDecoderTest.SingleInput/1',
-          'VideoDecoderTests/VideoDecoderTest.SingleInput/2',
-          'VideoDecoderTests/VideoDecoderTest.SingleInput/3',
+          # GetMaxNumberOfCachedFrames() on Android is device dependent,
+          # and Android doesn't provide an API to get it. So, this function
+          # doesn't make sense on Android. But HoldFramesUntilFull tests depend
+          # on this number strictly.
+          'VideoDecoderTests/VideoDecoderTest.HoldFramesUntilFull/*',
+
+          # Currently, invalid input tests are not supported.
           'VideoDecoderTests/VideoDecoderTest.SingleInvalidInput/*',
           'VideoDecoderTests/VideoDecoderTest'
           '.MultipleValidInputsAfterInvalidKeyFrame/*',
@@ -305,9 +288,6 @@
 
           # Android currently does not support multi-video playback, which
           # the following tests depend upon.
-          'VideoDecoderTests/VideoDecoderTest.ThreeMoreDecoders/0',
-          'VideoDecoderTests/VideoDecoderTest.ThreeMoreDecoders/1',
-          'VideoDecoderTests/VideoDecoderTest.ThreeMoreDecoders/2',
-          'VideoDecoderTests/VideoDecoderTest.ThreeMoreDecoders/3',
+          'VideoDecoderTests/VideoDecoderTest.ThreeMoreDecoders/*',
       ],
   }
diff --git a/src/starboard/android/shared/launcher.py b/src/starboard/android/shared/launcher.py
deleted file mode 100644
index 5a0d6bb..0000000
--- a/src/starboard/android/shared/launcher.py
+++ /dev/null
@@ -1,401 +0,0 @@
-#
-# Copyright 2017 The Cobalt Authors. All Rights Reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-"""Android implementation of Starboard launcher abstraction."""
-
-import os
-import Queue
-import re
-import socket
-import subprocess
-import sys
-import threading
-import time
-
-import _env  # pylint: disable=unused-import
-
-from starboard.android.shared import sdk_utils
-from starboard.tools import abstract_launcher
-
-_APP_PACKAGE_NAME = 'dev.cobalt.coat'
-
-_APP_START_INTENT = 'dev.cobalt.coat/dev.cobalt.app.MainActivity'
-
-# Matches an "adb shell am monitor" error line.
-_RE_ADB_AM_MONITOR_ERROR = re.compile(r'\*\* ERROR')
-
-# String added to queue to indicate process has crashed
-_QUEUE_CODE_CRASHED = 'crashed'
-
-# Args to go/crow, which is started if no other device is attached.
-_CROW_COMMANDLINE = ['/google/data/ro/teams/mobile_eng_prod/crow/crow.par',
-                     '--api_level', '24', '--device', 'tv',
-                     '--open_gl_driver', 'host',
-                     '--noenable_g3_monitor']
-
-# How long to keep logging after a crash in order to emit the stack trace.
-_CRASH_LOG_SECONDS = 1.0
-
-_DEV_NULL = open('/dev/null')
-
-_ADB = os.path.join(sdk_utils.GetSdkPath(), 'platform-tools', 'adb')
-
-_RUNTIME_PERMISSIONS = [
-    'android.permission.GET_ACCOUNTS',
-    'android.permission.RECORD_AUDIO',
-]
-
-
-def TargetOsPathJoin(*path_elements):
-  """os.path.join for the target (Android)."""
-  return '/'.join(path_elements)
-
-
-def CleanLine(line):
-  """Removes trailing carriages returns from ADB output."""
-  return line.replace('\r', '')
-
-
-class StepTimer(object):
-  """Class for timing how long install/run steps take."""
-
-  def __init__(self, step_name):
-    self.step_name = step_name
-    self.start_time = time.time()
-    self.end_time = None
-
-  def Stop(self):
-    if self.start_time is None:
-      sys.stderr.write('Cannot stop timer; not started\n')
-    else:
-      self.end_time = time.time()
-      total_time = self.end_time - self.start_time
-      sys.stderr.write('Step \"{}\" took {} seconds.\n'.format(
-          self.step_name, total_time))
-
-
-class AdbCommandBuilder(object):
-  """Builder for 'adb' commands."""
-
-  def __init__(self, device_id):
-    self.device_id = device_id
-
-  def Build(self, *args):
-    """Builds an 'adb' commandline with the given args."""
-    result = [_ADB]
-    if self.device_id:
-      result.append('-s')
-      result.append(self.device_id)
-    result += list(args)
-    return result
-
-
-class AdbAmMonitorWatcher(object):
-  """Watches an "adb shell am monitor" process to detect crashes."""
-
-  def __init__(self, adb_builder, done_queue):
-    self.adb_builder = adb_builder
-    self.process = subprocess.Popen(
-        adb_builder.Build('shell', 'am', 'monitor'),
-        stdout=subprocess.PIPE,
-        stderr=_DEV_NULL,
-        close_fds=True)
-    self.thread = threading.Thread(target=self._Run)
-    self.thread.start()
-    self.done_queue = done_queue
-
-  def Shutdown(self):
-    self.process.kill()
-    self.thread.join()
-
-  def _Run(self):
-    while True:
-      line = CleanLine(self.process.stdout.readline())
-      if not line:
-        return
-      if re.search(_RE_ADB_AM_MONITOR_ERROR, line):
-        self.done_queue.put(_QUEUE_CODE_CRASHED)
-        # This log line will wake up the main thread
-        subprocess.call(
-            self.adb_builder.Build('shell', 'log', '-t', 'starboard',
-                                   'am monitor detected crash'),
-            close_fds=True)
-
-
-class Launcher(abstract_launcher.AbstractLauncher):
-  """Run an application on Android."""
-
-  def __init__(self, platform, target_name, config, device_id, **kwargs):
-
-    super(Launcher, self).__init__(platform, target_name, config, device_id,
-                                   **kwargs)
-
-    if not self.device_id:
-      self.device_id = self._IdentifyDevice()
-    else:
-      self._ConnectIfNecessary()
-
-    self.adb_builder = AdbCommandBuilder(self.device_id)
-
-    out_directory = os.path.split(self.GetTargetPath())[0]
-    self.apk_path = os.path.join(out_directory, '{}.apk'.format(target_name))
-    if not os.path.exists(self.apk_path):
-      raise Exception("Can't find APK {}".format(self.apk_path))
-
-    # This flag is set when the main Run() loop exits.  If Kill() is called
-    # after this flag is set, it will not do anything.
-    self.killed = threading.Event()
-
-    # Keep track of the port used by ADB forward in order to remove it later
-    # on.
-    self.local_port = None
-
-  def _IsValidIPv4Address(self, address):
-    """Returns True if address is a valid IPv4 address, False otherwise."""
-    try:
-      # inet_aton throws an exception if the address is not a valid IPv4
-      # address. However addresses such as '127.1' might still be considered
-      # valid, hence the check for 3 '.' in the address.
-      if socket.inet_aton(address) and address.count('.') == 3:
-        return True
-    except:
-      pass
-    return False
-
-  def _GetAdbDevices(self):
-    """Returns a list of names of connected devices, or empty list if none."""
-
-    # Does not use the ADBCommandBuilder class because this command should be
-    # run without targeting a specific device.
-    p = subprocess.Popen([_ADB, 'devices'], stderr=_DEV_NULL,
-                         stdout=subprocess.PIPE, close_fds=True)
-    result = p.stdout.readlines()[1:-1]
-    p.wait()
-
-    names = []
-    for device in result:
-      name_info = device.split('\t')
-      # Some devices may not have authorization for USB debugging.
-      try:
-        if 'unauthorized' not in name_info[1]:
-          names.append(name_info[0])
-      # Sometimes happens when device is found, even though none are connected.
-      except IndexError:
-        continue
-    return names
-
-  def _IdentifyDevice(self):
-    """Picks a device to be used to run the executable.
-
-    In the event that no device_id is provided, but multiple
-    devices are connected, this method chooses the first device
-    listed.
-
-    Returns:
-      The name of an attached device, or None if no devices are present.
-    """
-    device_name = None
-
-    devices = self._GetAdbDevices()
-    if devices:
-      device_name = devices[0]
-
-    return device_name
-
-  def _ConnectIfNecessary(self):
-    """Run ADB connect if needed for devices connected over IP."""
-    if not self._IsValidIPv4Address(self.device_id):
-      return
-    for device in self._GetAdbDevices():
-      # Devices returned by _GetAdbDevices might include port number, so cannot
-      # simply check if self.device_id is in the returned list.
-      if self.device_id in device:
-        return
-
-    # Device isn't connected. Run ADB connect.
-    # Does not use the ADBCommandBuilder class because this command should be
-    # run without targeting a specific device.
-    p = subprocess.Popen([_ADB, 'connect', self.device_id], stderr=_DEV_NULL,
-                         stdout=subprocess.PIPE, close_fds=True)
-    result = p.stdout.readlines()[0]
-    p.wait()
-
-    if 'connected to' not in result:
-      sys.stderr.write('Failed to connect to {}\n'.format(self.device_id))
-
-  def _LaunchCrowIfNecessary(self):
-    if self.device_id:
-      return
-
-    # Note that we just leave Crow running, since we uninstall/reinstall
-    # each time anyway.
-    self._CheckCall(*_CROW_COMMANDLINE)
-
-  def _Call(self, *args):
-    sys.stderr.write('{}\n'.format(' '.join(args)))
-    subprocess.call(args, stdout=_DEV_NULL, stderr=_DEV_NULL,
-                    close_fds=True)
-
-  def _CallAdb(self, *in_args):
-    args = self.adb_builder.Build(*in_args)
-    self._Call(*args)
-
-  def _CheckCall(self, *args):
-    sys.stderr.write('{}\n'.format(' '.join(args)))
-    subprocess.check_call(args, stdout=_DEV_NULL, stderr=_DEV_NULL,
-                          close_fds=True)
-
-  def _CheckCallAdb(self, *in_args):
-    args = self.adb_builder.Build(*in_args)
-    self._CheckCall(*args)
-
-  def _PopenAdb(self, *args, **kwargs):
-    return subprocess.Popen(self.adb_builder.Build(*args), close_fds=True,
-                            **kwargs)
-
-  def Run(self):
-    # The return code for binaries run on Android is read from a log line that
-    # it emitted in android_main.cc.  This return_code variable will be assigned
-    # the value read when we see that line, or left at 1 in the event of a crash
-    # or early exit.
-    return_code = 1
-
-    # Setup for running executable
-    self._LaunchCrowIfNecessary()
-    self._CheckCallAdb('wait-for-device')
-    self._Shutdown()
-
-    # Clear logcat
-    self._CheckCallAdb('logcat', '-c')
-
-    # Install the APK.
-    install_timer = StepTimer('install')
-    self._CheckCallAdb('install', '-r', self.apk_path)
-    install_timer.Stop()
-
-    # Send the wakeup key to ensure daydream isn't running, otherwise Activity
-    # Manager may get in a loop running the test over and over again.
-    self._CheckCallAdb('shell', 'input', 'keyevent', 'KEYCODE_WAKEUP')
-
-    # Grant runtime permissions to avoid prompts during testing.
-    for permission in _RUNTIME_PERMISSIONS:
-      self._CheckCallAdb('shell', 'pm', 'grant', _APP_PACKAGE_NAME, permission)
-
-    done_queue = Queue.Queue()
-    am_monitor = AdbAmMonitorWatcher(self.adb_builder, done_queue)
-
-    # Increases the size of the logcat buffer.  Without this, the log buffer
-    # will not flush quickly enough and output will be cut off.
-    self._CheckCallAdb('logcat', '-G', '2M')
-
-    #  Ctrl + C will kill this process
-    logcat_process = self._PopenAdb(
-        'logcat', '-v', 'raw', '-s', '*:F', 'DEBUG:*', 'System.err:*',
-        'starboard:*', 'starboard_media:*',
-        stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
-
-    # Actually running executable
-    run_timer = StepTimer('running executable')
-    try:
-      args = ['shell', 'am', 'start']
-      command_line_params = [
-          '--android_log_sleep_time=1000',
-          '--disable_sign_in',
-      ]
-      if self.target_command_line_params:
-        command_line_params += self.target_command_line_params
-      args += ['--esa', 'args', "'{}'".format(','.join(command_line_params))]
-      args += [_APP_START_INTENT]
-
-      self._CheckCallAdb(*args)
-
-      app_crashed = False
-      while True:
-        if not done_queue.empty():
-          done_queue_code = done_queue.get_nowait()
-          if done_queue_code == _QUEUE_CODE_CRASHED:
-            app_crashed = True
-            threading.Timer(_CRASH_LOG_SECONDS, logcat_process.kill).start()
-
-        # Note we cannot use "for line in logcat_process.stdout" because
-        # that uses a large buffer which will cause us to deadlock.
-        line = CleanLine(logcat_process.stdout.readline())
-
-        # Some crashes are not caught by the am_monitor thread, but they do
-        # produce the following string in logcat before they exit.
-        if 'beginning of crash' in line:
-          app_crashed = True
-          threading.Timer(_CRASH_LOG_SECONDS, logcat_process.kill).start()
-
-        if not line:  # Logcat exited, or was killed
-          break
-        else:
-          self._WriteLine(line)
-          # Don't break until we see the below text in logcat, which should be
-          # written when the Starboard application event loop finishes.
-          if '***Application Stopped***' in line:
-            try:
-              return_code = int(line.split(' ')[-1])
-            except ValueError:  # Error message was printed to stdout
-              pass
-            logcat_process.kill()
-            break
-
-    finally:
-      if app_crashed:
-        self._WriteLine('***Application Crashed***\n')
-      else:
-        self._Shutdown()
-      if self.local_port is not None:
-        self._CallAdb('forward', '--remove', 'tcp:{}'.format(self.local_port))
-      am_monitor.Shutdown()
-      self.killed.set()
-      run_timer.Stop()
-      if logcat_process.poll() is None:
-        # This could happen when using SIGINT to kill the launcher
-        # (e.g. when using starboard/tools/example/app_launcher_client.py).
-        sys.stderr.write('Logcat process is still running. Killing it now.\n')
-        logcat_process.kill()
-
-    return return_code
-
-  def _Shutdown(self):
-    self._CallAdb('shell', 'am', 'force-stop', _APP_PACKAGE_NAME)
-
-  def Kill(self):
-    if not self.killed.is_set():
-      sys.stderr.write('***Killing Launcher***\n')
-      self._CheckCallAdb('shell', 'log', '-t', 'starboard',
-                         '***Application Stopped*** 1')
-      self._Shutdown()
-    else:
-      sys.stderr.write('Cannot kill launcher: already dead.\n')
-
-  def _WriteLine(self, line):
-    """Write log output to stdout."""
-    self.output_file.write(line)
-    self.output_file.flush()
-
-  def GetHostAndPortGivenPort(self, port):
-    forward_p = self._PopenAdb(
-        'forward', 'tcp:0', 'tcp:{}'.format(port),
-        stdout=subprocess.PIPE,
-        stderr=_DEV_NULL)
-    forward_p.wait()
-
-    self.local_port = CleanLine(forward_p.stdout.readline()).rstrip('\n')
-    sys.stderr.write('ADB forward local port {} '
-                     '=> device port {}\n'.format(self.local_port, port))
-    return socket.gethostbyname('localhost'), self.local_port
diff --git a/src/starboard/android/shared/media_codec_bridge.cc b/src/starboard/android/shared/media_codec_bridge.cc
index 8b4daa4..01ed2e3 100644
--- a/src/starboard/android/shared/media_codec_bridge.cc
+++ b/src/starboard/android/shared/media_codec_bridge.cc
@@ -24,6 +24,8 @@
 // https://developer.android.com/reference/android/media/MediaFormat.html#COLOR_RANGE_FULL.
 const jint COLOR_RANGE_FULL = 1;
 const jint COLOR_RANGE_LIMITED = 2;
+// Not defined in MediaFormat. Represents unspecified color ID range.
+const jint COLOR_RANGE_UNSPECIFIED = 0;
 
 const jint COLOR_STANDARD_BT2020 = 6;
 const jint COLOR_STANDARD_BT601_NTSC = 4;
@@ -70,6 +72,8 @@
       return COLOR_RANGE_LIMITED;
     case kSbMediaRangeIdFull:
       return COLOR_RANGE_FULL;
+    case kSbMediaRangeIdUnspecified:
+      return COLOR_RANGE_UNSPECIFIED;
     default:
       return COLOR_VALUE_UNKNOWN;
   }
@@ -254,18 +258,6 @@
   j_reused_get_output_format_result_ = NULL;
 }
 
-DequeueInputResult MediaCodecBridge::DequeueInputBuffer(jlong timeout_us) {
-  JniEnvExt* env = JniEnvExt::Get();
-  env->CallVoidMethodOrAbort(
-      j_media_codec_bridge_, "dequeueInputBuffer",
-      "(JLdev/cobalt/media/MediaCodecBridge$DequeueInputResult;)V", timeout_us,
-      j_reused_dequeue_input_result_);
-  return {env->CallIntMethodOrAbort(j_reused_dequeue_input_result_, "status",
-                                    "()I"),
-          env->CallIntMethodOrAbort(j_reused_dequeue_input_result_, "index",
-                                    "()I")};
-}
-
 jobject MediaCodecBridge::GetInputBuffer(jint index) {
   SB_DCHECK(index >= 0);
   return JniEnvExt::Get()->CallObjectMethodOrAbort(
@@ -318,26 +310,6 @@
       presentation_time_microseconds);
 }
 
-DequeueOutputResult MediaCodecBridge::DequeueOutputBuffer(jlong timeout_us) {
-  JniEnvExt* env = JniEnvExt::Get();
-  env->CallVoidMethodOrAbort(
-      j_media_codec_bridge_, "dequeueOutputBuffer",
-      "(JLdev/cobalt/media/MediaCodecBridge$DequeueOutputResult;)V", timeout_us,
-      j_reused_dequeue_output_result_);
-  return {env->CallIntMethodOrAbort(j_reused_dequeue_output_result_, "status",
-                                    "()I"),
-          env->CallIntMethodOrAbort(j_reused_dequeue_output_result_, "index",
-                                    "()I"),
-          env->CallIntMethodOrAbort(j_reused_dequeue_output_result_, "flags",
-                                    "()I"),
-          env->CallIntMethodOrAbort(j_reused_dequeue_output_result_, "offset",
-                                    "()I"),
-          env->CallLongMethodOrAbort(j_reused_dequeue_output_result_,
-                                     "presentationTimeMicroseconds", "()J"),
-          env->CallIntMethodOrAbort(j_reused_dequeue_output_result_, "numBytes",
-                                    "()I")};
-}
-
 jobject MediaCodecBridge::GetOutputBuffer(jint index) {
   SB_DCHECK(index >= 0);
   return JniEnvExt::Get()->CallObjectMethodOrAbort(
diff --git a/src/starboard/android/shared/media_decoder.cc b/src/starboard/android/shared/media_decoder.cc
index c47c126..fe757cc 100644
--- a/src/starboard/android/shared/media_decoder.cc
+++ b/src/starboard/android/shared/media_decoder.cc
@@ -303,7 +303,11 @@
 
   if (is_valid()) {
     host_->OnFlushing();
-
+    // After |decoder_thread_| is ended and before |media_codec_bridge_| is
+    // flushed, OnMediaCodecOutputBufferAvailable() would still be called.
+    // So that, |dequeue_output_results_| may not be empty. As we call
+    // JoinOnThreads() in destructor and DequeueOutputResult is consisted of
+    // plain data, it's fine to let destructor delete |dequeue_output_results_|.
     jint status = media_codec_bridge_->Flush();
     if (status != MEDIA_CODEC_OK) {
       SB_LOG(ERROR) << "Failed to flush media codec.";
diff --git a/src/starboard/android/shared/player_create.cc b/src/starboard/android/shared/player_create.cc
index 800735b..ffa2260 100644
--- a/src/starboard/android/shared/player_create.cc
+++ b/src/starboard/android/shared/player_create.cc
@@ -28,7 +28,6 @@
 using starboard::android::shared::cobalt::kPlaying;
 using starboard::android::shared::cobalt::
     UpdateActiveSessionPlatformPlaybackState;
-using starboard::android::shared::cobalt::UpdateActiveSessionPlatformPlayer;
 
 SbPlayer SbPlayerCreate(SbWindow window,
                         SbMediaVideoCodec video_codec,
@@ -116,7 +115,5 @@
   // matter.
   SbPlayerSetBounds(player, 0, 0, 0, 0, 0);
 
-  UpdateActiveSessionPlatformPlayer(player);
-
   return player;
 }
diff --git a/src/starboard/android/shared/player_destroy.cc b/src/starboard/android/shared/player_destroy.cc
index b1b5a96..b790729 100644
--- a/src/starboard/android/shared/player_destroy.cc
+++ b/src/starboard/android/shared/player_destroy.cc
@@ -20,13 +20,11 @@
 using starboard::android::shared::cobalt::kNone;
 using starboard::android::shared::cobalt::
     UpdateActiveSessionPlatformPlaybackState;
-using starboard::android::shared::cobalt::UpdateActiveSessionPlatformPlayer;
 
 void SbPlayerDestroy(SbPlayer player) {
   if (!SbPlayerIsValid(player)) {
     return;
   }
   UpdateActiveSessionPlatformPlaybackState(kNone);
-  UpdateActiveSessionPlatformPlayer(kSbPlayerInvalid);
   delete player;
 }
diff --git a/src/starboard/android/shared/starboard_platform.gypi b/src/starboard/android/shared/starboard_platform.gypi
index 977c928..186c9df 100644
--- a/src/starboard/android/shared/starboard_platform.gypi
+++ b/src/starboard/android/shared/starboard_platform.gypi
@@ -62,6 +62,9 @@
         'audio_decoder.h',
         'audio_renderer.h',
         'audio_sink_get_max_channels.cc',
+        'audio_sink_get_min_buffer_size_in_frames.cc',
+        'audio_sink_min_required_frames_tester.cc',
+        'audio_sink_min_required_frames_tester.h',
         'audio_sink_get_nearest_supported_sample_frequency.cc',
         'audio_sink_is_audio_frame_storage_type_supported.cc',
         'audio_sink_is_audio_sample_type_supported.cc',
@@ -444,6 +447,7 @@
         '<(DEPTH)/starboard/shared/stub/system_hide_splash_screen.cc',
         '<(DEPTH)/starboard/shared/stub/system_request_pause.cc',
         '<(DEPTH)/starboard/shared/stub/system_request_unpause.cc',
+        '<(DEPTH)/starboard/shared/stub/system_sign_with_certification_secret_key.cc',
         '<(DEPTH)/starboard/shared/stub/thread_context_get_pointer.cc',
         '<(DEPTH)/starboard/shared/stub/thread_sampler_create.cc',
         '<(DEPTH)/starboard/shared/stub/thread_sampler_destroy.cc',
diff --git a/src/starboard/android/shared/video_decoder.cc b/src/starboard/android/shared/video_decoder.cc
index 4d3400a..227b54c 100644
--- a/src/starboard/android/shared/video_decoder.cc
+++ b/src/starboard/android/shared/video_decoder.cc
@@ -61,9 +61,6 @@
     if (!released_) {
       media_codec_bridge_->ReleaseOutputBuffer(dequeue_output_result_.index,
                                                false);
-      if (is_end_of_stream()) {
-        media_codec_bridge_->Flush();
-      }
     }
   }
 
@@ -166,10 +163,7 @@
       output_mode_(output_mode),
       decode_target_graphics_context_provider_(
           decode_target_graphics_context_provider),
-      decode_target_(kSbDecodeTargetInvalid),
-      frame_width_(0),
-      frame_height_(0),
-      first_buffer_received_(false),
+      has_new_texture_available_(false),
       surface_condition_variable_(surface_destroy_mutex_) {
   if (!InitializeCodec()) {
     SB_LOG(ERROR) << "Failed to initialize video decoder.";
@@ -245,11 +239,17 @@
         SB_LOG(ERROR) << "Failed to reinitialize codec.";
         TeardownCodec();
         error_cb_(kSbPlayerErrorDecode, "Cannot initialize codec.");
+        return;
       }
     }
   }
-
+  // There's a race condition when suspending the app. If surface view is
+  // destroyed before video decoder stopped, |media_decoder_| could be null
+  // here. And error_cb_() could be handled asynchronously. It's possible
+  // that WriteInputBuffer() is called again when the first WriteInputBuffer()
+  // fails, in such case is_valid() will also return false.
   if (!is_valid()) {
+    SB_LOG(INFO) << "Trying to write input buffer when codec is not available.";
     return;
   }
   media_decoder_->WriteInputBuffer(input_buffer);
@@ -262,11 +262,22 @@
   SB_DCHECK(decoder_status_cb_);
 
   if (!first_buffer_received_) {
+    // In this case, |media_decoder_|'s decoder thread is not initialized.
+    // Return EOS frame directly.
     first_buffer_received_ = true;
     first_buffer_timestamp_ = 0;
+    decoder_status_cb_(kBufferFull, VideoFrame::CreateEOSFrame());
+    return;
   }
 
+  // There's a race condition when suspending the app. If surface view is
+  // destroyed before video decoder stopped, |media_decoder_| could be null
+  // here. And error_cb_() could be handled asynchronously. It's possible
+  // that WriteEndOfStream() is called immediately after the first
+  // WriteInputBuffer() fails, in such case is_valid() will also return false.
   if (!is_valid()) {
+    SB_LOG(INFO)
+        << "Trying to write end of stream when codec is not available.";
     return;
   }
   media_decoder_->WriteEndOfStream();
@@ -306,6 +317,10 @@
       }
       j_output_surface = decode_target->data->surface;
 
+      JniEnvExt* env = JniEnvExt::Get();
+      env->CallVoidMethodOrAbort(decode_target->data->surface_texture,
+                                 "setOnFrameAvailableListener", "(J)V", this);
+
       starboard::ScopedLock lock(decode_target_mutex_);
       decode_target_ = decode_target;
     } break;
@@ -349,11 +364,34 @@
   media_decoder_.reset();
   color_metadata_ = starboard::nullopt;
 
-  starboard::ScopedLock lock(decode_target_mutex_);
-  if (SbDecodeTargetIsValid(decode_target_)) {
+  SbDecodeTarget decode_target_to_release = kSbDecodeTargetInvalid;
+  {
+    starboard::ScopedLock lock(decode_target_mutex_);
+    if (SbDecodeTargetIsValid(decode_target_)) {
+      // Remove OnFrameAvailableListener to make sure the callback
+      // would not be called.
+      JniEnvExt* env = JniEnvExt::Get();
+      env->CallVoidMethodOrAbort(decode_target_->data->surface_texture,
+                                 "removeOnFrameAvailableListener", "()V");
+
+      decode_target_to_release = decode_target_;
+      decode_target_ = kSbDecodeTargetInvalid;
+      first_texture_received_ = false;
+      has_new_texture_available_.store(false);
+    } else {
+      // If |decode_target_| is not created, |first_texture_received_| and
+      // |has_new_texture_available_| should always be false.
+      SB_DCHECK(!first_texture_received_);
+      SB_DCHECK(!has_new_texture_available_.load());
+    }
+  }
+  // Release SbDecodeTarget on renderer thread. As |decode_target_mutex_| may
+  // be required in renderer thread, SbDecodeTargetReleaseInGlesContext() must
+  // be called when |decode_target_mutex_| is not locked, or we may get
+  // deadlock.
+  if (SbDecodeTargetIsValid(decode_target_to_release)) {
     SbDecodeTargetReleaseInGlesContext(decode_target_graphics_context_provider_,
-                                       decode_target_);
-    decode_target_ = kSbDecodeTargetInvalid;
+                                       decode_target_to_release);
   }
 }
 
@@ -481,32 +519,43 @@
   // We must take a lock here since this function can be called from a separate
   // thread.
   starboard::ScopedLock lock(decode_target_mutex_);
-
   if (SbDecodeTargetIsValid(decode_target_)) {
-    updateTexImage(decode_target_->data->surface_texture);
+    bool has_new_texture = has_new_texture_available_.exchange(false);
+    if (has_new_texture) {
+      updateTexImage(decode_target_->data->surface_texture);
 
-    float matrix4x4[16];
-    getTransformMatrix(decode_target_->data->surface_texture, matrix4x4);
-    SetDecodeTargetContentRegionFromMatrix(
-        &decode_target_->data->info.planes[0].content_region, 1, 1, matrix4x4);
+      float matrix4x4[16];
+      getTransformMatrix(decode_target_->data->surface_texture, matrix4x4);
+      SetDecodeTargetContentRegionFromMatrix(
+          &decode_target_->data->info.planes[0].content_region, 1, 1,
+          matrix4x4);
 
-    // Mark the decode target's width and height as 1, so that the
-    // |content_region|'s coordinates will be interpreted as normalized
-    // coordinates.  This is nice because on Android we're never explicitly
-    // told the texture width/height, and we are only provided the content
-    // region via normalized coordinates.
-    decode_target_->data->info.planes[0].width = 1;
-    decode_target_->data->info.planes[0].height = 1;
-    decode_target_->data->info.width = 1;
-    decode_target_->data->info.height = 1;
+      // Mark the decode target's width and height as 1, so that the
+      // |content_region|'s coordinates will be interpreted as normalized
+      // coordinates.  This is nice because on Android we're never explicitly
+      // told the texture width/height, and we are only provided the content
+      // region via normalized coordinates.
+      decode_target_->data->info.planes[0].width = 1;
+      decode_target_->data->info.planes[0].height = 1;
+      decode_target_->data->info.width = 1;
+      decode_target_->data->info.height = 1;
 
-    SbDecodeTarget out_decode_target = new SbDecodeTargetPrivate;
-    out_decode_target->data = decode_target_->data;
+      if (!first_texture_received_) {
+        first_texture_received_ = true;
+      }
+    }
 
-    return out_decode_target;
-  } else {
-    return kSbDecodeTargetInvalid;
+    if (first_texture_received_) {
+      SbDecodeTarget out_decode_target = new SbDecodeTargetPrivate;
+      out_decode_target->data = decode_target_->data;
+      return out_decode_target;
+    }
   }
+  return kSbDecodeTargetInvalid;
+}
+
+void VideoDecoder::OnNewTextureAvailable() {
+  has_new_texture_available_.store(true);
 }
 
 void VideoDecoder::OnSurfaceDestroyed() {
@@ -527,3 +576,16 @@
 }  // namespace shared
 }  // namespace android
 }  // namespace starboard
+
+extern "C" SB_EXPORT_PLATFORM void
+Java_dev_cobalt_media_VideoSurfaceTexture_nativeOnFrameAvailable(
+    JNIEnv* env,
+    jobject unused_this,
+    jlong native_video_decoder) {
+  using starboard::android::shared::VideoDecoder;
+
+  VideoDecoder* video_decoder =
+      reinterpret_cast<VideoDecoder*>(native_video_decoder);
+  SB_DCHECK(video_decoder);
+  video_decoder->OnNewTextureAvailable();
+}
diff --git a/src/starboard/android/shared/video_decoder.h b/src/starboard/android/shared/video_decoder.h
index ef5964c..18f3730 100644
--- a/src/starboard/android/shared/video_decoder.h
+++ b/src/starboard/android/shared/video_decoder.h
@@ -62,6 +62,11 @@
                   const ErrorCB& error_cb) override;
   size_t GetPrerollFrameCount() const override;
   SbTime GetPrerollTimeout() const override;
+  // As we hold output buffers received from MediaCodec, the max number of
+  // cached frames depends on the max number of output buffers in MediaCodec,
+  // which is device dependent. The media decoder may stall if we hold all
+  // output buffers. But it would continue working once we release output
+  // buffer.
   size_t GetMaxNumberOfCachedFrames() const override { return 12; }
 
   void WriteInputBuffer(const scoped_refptr<InputBuffer>& input_buffer)
@@ -72,6 +77,8 @@
 
   bool is_valid() const { return media_decoder_ != NULL; }
 
+  void OnNewTextureAvailable();
+
  private:
   // Attempt to initialize the codec.  Returns whether initialization was
   // successful.
@@ -100,7 +107,7 @@
 
   // If decode-to-texture is enabled, then we store the decode target texture
   // inside of this |decode_target_| member.
-  SbDecodeTarget decode_target_;
+  SbDecodeTarget decode_target_ = kSbDecodeTargetInvalid;
 
   // Since GetCurrentDecodeTarget() needs to be called from an arbitrary thread
   // to obtain the current decode target (which ultimately ends up being a
@@ -109,8 +116,8 @@
   starboard::Mutex decode_target_mutex_;
 
   // The width and height of the latest decoded frame.
-  int32_t frame_width_;
-  int32_t frame_height_;
+  int32_t frame_width_ = 0;
+  int32_t frame_height_ = 0;
 
   // The last enqueued |SbMediaColorMetadata|.
   optional<SbMediaColorMetadata> color_metadata_;
@@ -120,8 +127,10 @@
   atomic_int32_t number_of_frames_being_decoded_;
   scoped_refptr<Sink> sink_;
 
-  bool first_buffer_received_;
+  bool first_buffer_received_ = false;
+  bool first_texture_received_ = false;
   volatile SbTime first_buffer_timestamp_;
+  atomic_bool has_new_texture_available_;
 
   // Use |owns_video_surface_| only on decoder thread, to avoid unnecessary
   // invocation of ReleaseVideoSurface(), though ReleaseVideoSurface() would
diff --git a/src/starboard/audio_sink.h b/src/starboard/audio_sink.h
index cab09dc..c0655b8 100644
--- a/src/starboard/audio_sink.h
+++ b/src/starboard/audio_sink.h
@@ -170,6 +170,25 @@
 SB_EXPORT bool SbAudioSinkIsAudioFrameStorageTypeSupported(
     SbMediaAudioFrameStorageType audio_frame_storage_type);
 
+#if SB_API_VERSION >= 11
+// Returns the minimum frames required by audio sink to play without underflows.
+// Returns -1, if |channels|, |sample_type| or |sampling_frequency_hz| is not
+// supported. It's user's responsibility to ensure that there're enough
+// frames written into audio sink during playing, or it may have underflows.
+//
+// |channels|: The number of audio channels, such as left and right channels
+// in stereo audio.
+// |audio_sample_type|: The type of each sample of the audio data --
+// |int16|, |float32|, etc.
+// |sampling_frequency_hz|: The sample frequency of the audio data being
+// streamed. For example, 22,000 Hz means 22,000 sample elements represents
+// one second of audio data.
+SB_EXPORT int SbAudioSinkGetMinBufferSizeInFrames(
+    int channels,
+    SbMediaAudioSampleType sample_type,
+    int sampling_frequency_hz);
+#endif  // SB_API_VERSION >= 11
+
 #ifdef __cplusplus
 }  // extern "C"
 #endif
diff --git a/src/starboard/build/filelist.py b/src/starboard/build/filelist.py
index c2ec006..c42f2f9 100644
--- a/src/starboard/build/filelist.py
+++ b/src/starboard/build/filelist.py
@@ -34,8 +34,8 @@
   """Makes it easy to include files for things like archive operations."""
 
   def __init__(self):
-    self.file_list = []  # List of 2-tuples: file_path, archive_path
-    self.symlink_dir_list = []  # Same
+    self.file_list = []  # List of (file_path, archive_path)
+    self.symlink_dir_list = []  # List of (file_path, link_path, target_path)
 
   def AddAllFilesInPath(self, root_dir, sub_path):
     """Starting at the root path, the sub_paths are searched for files."""
@@ -45,12 +45,16 @@
       self.AddFile(root_dir, sub_path)
     elif not os.path.isdir(sub_path):
       raise IOError('Expected root directory to exist: %s' % sub_path)
+    cwd = os.getcwd()
     for root, dirs, files in port_symlink.OsWalk(sub_path):
+      # Do not use os.path.abspath as it does not work on Win for long paths.
+      if not os.path.isabs(root):
+        root = os.path.join(cwd, root)
       for f in files:
-        full_path = os.path.abspath(os.path.join(root, f))
+        full_path = os.path.join(root, f)
         all_files.append(full_path)
       for dir_name in dirs:
-        full_path = os.path.abspath(os.path.join(root, dir_name))
+        full_path = os.path.join(root, dir_name)
         if port_symlink.IsSymLink(full_path):
           all_symlinks.append(full_path)
     for f in all_files + all_symlinks:
@@ -84,11 +88,19 @@
 
 
 def _ResolveSymLink(link_file):
+  """Returns the absolute path of the resolved link. This path should exist."""
   target_path = port_symlink.ReadSymLink(link_file)
-  if os.path.exists(target_path):  # Absolute path
+  if os.path.isabs(target_path):  # Absolute path
+    assert os.path.exists(target_path), (
+        'Path {} does not exist.'.format(target_path))
     return target_path
-  else:
-    return os.path.join(link_file, target_path)  # Relative path from link_file.
+  else:  # Relative path from link_file.
+    abs_path = os.path.normpath(
+        os.path.join(os.path.dirname(link_file), target_path))
+    assert os.path.exists(abs_path), (
+        'Path {} does not exist (link file: {}, target_path: {})'.format(
+            abs_path, link_file, target_path))
+    return abs_path
 
 
 def _FallbackOsGetRelPath(path, start_dir):
@@ -103,24 +115,26 @@
 
 
 def _OsGetRelpath(path, start_dir):
+  path = os.path.normpath(path)
+  start_dir = os.path.normpath(start_dir)
+  # Use absolute paths for Windows (nt paths checks the drive specifier).
+  # Do not use os.path.abspath as it does not work on Win for long paths.
+  if not os.path.isabs(path):
+    path = os.path.join(os.getcwd(), path)
+  if not os.path.isabs(start_dir):
+    start_dir = os.path.join(os.getcwd(), start_dir)
   try:
     return os.path.relpath(path, start_dir)
   except ValueError:
     try:
-      # Windows: nt paths checks the drive specifier, which is given by the
-      # abspath operation.
-      return os.path.relpath(os.path.abspath(path), os.path.abspath(start_dir))
-    except ValueError:
-      try:
-        # Last resort: do a string comparison to get relative path.
-        # Fixes issue b/134589032
-        rel_path = _FallbackOsGetRelPath(path, start_dir)
-        if not os.path.exists(os.path.join(start_dir, rel_path)):
-          raise ValueError('% does not exist.' % os.path.abspath(rel_path))
-        return rel_path
-      except ValueError as err:
-        logging.exception('Error %s while calling os.path.relpath(%s, %s)',
-                          err, path, start_dir)
+      # Do a string comparison to get relative path.
+      rel_path = _FallbackOsGetRelPath(path, start_dir)
+      if not os.path.exists(os.path.join(start_dir, rel_path)):
+        raise ValueError('%s does not exist.' % os.path.abspath(rel_path))
+      return rel_path
+    except ValueError as err:
+      logging.exception('Error %s while calling os.path.relpath(%s, %s)',
+                        err, path, start_dir)
 
 
 TYPE_NONE = 'NONE'
diff --git a/src/starboard/build/filelist_test.py b/src/starboard/build/filelist_test.py
index 7463ebb..34fc71b 100644
--- a/src/starboard/build/filelist_test.py
+++ b/src/starboard/build/filelist_test.py
@@ -21,18 +21,32 @@
 
 import _env  # pylint: disable=relative-import,unused-import
 
+from cobalt.build import cobalt_archive_extract
 from starboard.build import filelist
 from starboard.build import port_symlink
 from starboard.tools import util
 
 
+LONG_DIR_NAME_1 = 'really_l' + 'o' * 120 + 'ng_dir_name'
+LONG_DIR_NAME_2 = 'another_really_l' + 'o' * 120 + 'ng_dir_name'
+LONG_SUB_DIRS = os.path.join(LONG_DIR_NAME_1, LONG_DIR_NAME_2)
+
+
 def _MakeDirs(path):
   if not os.path.isdir(path):
     os.makedirs(path)
 
 
 class TempFileSystem(object):
-  """Generates a test file structure with file/dir/symlink for testing."""
+  """Generates a test file structure with file/dir/symlink for testing.
+
+  <temp_dir>
+   |-> <root_sub_dir>
+   |   |-> in
+   |   |   |-> from_dir
+   |   |   |   |-> test.txt
+   |   |   |-> from_dir_lnk -> <temp_dir>/<root_sub_dir>/in/from_dir
+  """
 
   def __init__(self, root_sub_dir='bundler'):
     root_sub_dir = os.path.normpath(root_sub_dir)
@@ -40,9 +54,9 @@
     if os.path.exists(self.root_tmp):
       port_symlink.Rmtree(self.root_tmp)
     self.root_in_tmp = os.path.join(self.root_tmp, 'in')
-    self.test_txt = os.path.join(self.root_in_tmp, 'from_dir', 'test.txt')
     self.sym_dir = os.path.join(self.root_in_tmp, 'from_dir_lnk')
     self.from_dir = os.path.join(self.root_in_tmp, 'from_dir')
+    self.test_txt = os.path.join(self.from_dir, 'test.txt')
 
   def Make(self):
     _MakeDirs(self.root_in_tmp)
@@ -51,6 +65,15 @@
     with open(self.test_txt, 'w') as fd:
       fd.write('TEST')
 
+  def MakeLongPathFile(self):
+    long_path_txt = os.path.join(self.from_dir, LONG_SUB_DIRS, 'test2.txt')
+    self.long_path_txt = long_path_txt
+    if port_symlink.IsWindows():
+      long_path_txt = cobalt_archive_extract.ToWinUncPath(long_path_txt)
+    _MakeDirs(os.path.dirname(long_path_txt))
+    with open(long_path_txt, 'w') as fd:
+      fd.write('TEST BIS')
+
   def Clear(self):
     port_symlink.Rmtree(self.root_tmp)
 
@@ -99,10 +122,15 @@
   def testAddAllFilesInPath(self):
     tf = TempFileSystem()
     tf.Make()
+    tf.MakeLongPathFile()
     flist = filelist.FileList()
     flist.AddAllFilesInPath(tf.root_in_tmp, tf.root_in_tmp)
     self.assertTrue(flist.symlink_dir_list)
-    self.assertTrue(flist.file_list)
+    expected_file_list = [
+        [tf.test_txt, os.path.join('from_dir', 'test.txt')],
+        [tf.long_path_txt,
+         os.path.join('from_dir', LONG_SUB_DIRS , 'test2.txt')]]
+    self.assertEqual(flist.file_list, expected_file_list)
 
   def testAddSymlink(self):
     tf = TempFileSystem()
@@ -114,27 +142,30 @@
     self.assertFalse(flist.file_list)
 
   def testAddRelativeSymlink(self):
-    """Tests the that adding a relative symlink works as expected."""
+    """Tests that adding a relative symlink works as expected."""
     tf = TempFileSystem()
     tf.Make()
     flist = filelist.FileList()
-    in2 = os.path.join(tf.root_in_tmp, 'in2')
-    target_path = os.path.relpath(tf.from_dir, in2)
+    in2 = os.path.join(tf.root_in_tmp, 'subdir', 'in2')
+    target_path = os.path.relpath(tf.from_dir, os.path.dirname(in2))
     # Sanity check that target_path is relative.
-    self.assertIn('..', target_path)
+    self.assertEqual(target_path, os.path.join('..', 'from_dir'))
+    # Create the link and check that it points to the correct folder.
     port_symlink.MakeSymLink(target_path, in2)
     self.assertTrue(port_symlink.IsSymLink(in2))
-    read_back_target_path = port_symlink.ReadSymLink(in2)
-    self.assertIn('..', read_back_target_path)
+    self.assertEqual(port_symlink.ReadSymLink(in2), target_path)
+    self.assertEqual(os.listdir(in2), ['test.txt'])
+    # Add the symlink to flist and check its content.
     flist.AddFile(tf.root_tmp, in2)
     flist.Print()
     self.assertTrue(flist.symlink_dir_list)
-    symlink_entry = flist.symlink_dir_list[0][1:]
-    expected = [os.path.join('in', 'in2'), os.path.join('in', 'from_dir')]
-    self.assertEqual(expected, symlink_entry)
+    expected = [
+        tf.root_tmp,
+        os.path.join('in', 'subdir', 'in2'),
+        os.path.join('in', 'from_dir')]
+    self.assertEqual(flist.symlink_dir_list[0], expected)
 
   def testOsGetRelpathFallback(self):
-    # Tests issue b/134589032
     path = (
         'src/out/tmp/cobalt_archive/archive/____app_launcher/third_party/'
         'web_platform_tests/custom-elements/registering-custom-elements/'
diff --git a/src/starboard/build/platform_configuration.py b/src/starboard/build/platform_configuration.py
index 6ef6650..61ce79a 100644
--- a/src/starboard/build/platform_configuration.py
+++ b/src/starboard/build/platform_configuration.py
@@ -106,7 +106,7 @@
 
     Args:
       application_name: The name of the application to load, in a canonical
-                        filesystem-friendly form.
+        filesystem-friendly form.
 
     Returns:
       An instance of ApplicationConfiguration defined for the application being
@@ -143,7 +143,9 @@
     return self._application_configuration
 
   def SetupPlatformTools(self, build_number):
-    """Install tools, SDKs, etc. needed to build for the platform.
+    """Install tools, SDKs, etc.
+
+    needed to build for the platform.
 
     Installs tools needed to build for this platform, possibly downloading
     and/or interacting with the user to do so. Raises a RuntimeError if the
@@ -232,7 +234,7 @@
         # Which JavaScript engine to use.  Currently, both SpiderMonkey 45 and
         # V8 are supported.  Note that V8 can only be used on platforms that
         # support JIT.
-        'javascript_engine': 'mozjs-45',
+        'javascript_engine': 'v8',
 
         # Disable JIT and run in interpreter-only mode by default. It can be
         # set to 1 to run in JIT mode.  For SpiderMonkey in particular, we
@@ -240,7 +242,7 @@
         # execution and lower memory usage.  Setting this to 0 for engine that
         # requires JIT, or 1 on a platform that does not support JIT, is a
         # usage error.
-        'cobalt_enable_jit': 0,
+        'cobalt_enable_jit': 1,
 
         # TODO: Remove these compatibility variables.
         'cobalt_config': config_name,
diff --git a/src/starboard/build/port_symlink.py b/src/starboard/build/port_symlink.py
index 33c417b..ec9f46c 100644
--- a/src/starboard/build/port_symlink.py
+++ b/src/starboard/build/port_symlink.py
@@ -104,7 +104,7 @@
 
 
 def _ReadSymLink(link_path):
-  """Returns a absolute path to the folder referred to by the link_path."""
+  """Returns the path (abs. or rel.) to the folder referred to by link_path."""
   if IsWindows():
     # pylint: disable=g-import-not-at-top
     from starboard.build import win_symlink
diff --git a/src/starboard/build/win_symlink.py b/src/starboard/build/win_symlink.py
index ef9ac07..1992561 100644
--- a/src/starboard/build/win_symlink.py
+++ b/src/starboard/build/win_symlink.py
@@ -31,6 +31,8 @@
 import subprocess
 import time
 
+from cobalt.build import cobalt_archive_extract
+
 
 ################################################################################
 #                                  API                                         #
@@ -278,15 +280,20 @@
 
 def _OsWalk(top, topdown, onerror, followlinks):
   """See api version of OsWalk above, for docstring."""
+  # Need an absolute path to use listdir and isdir with long paths.
+  top_abs_path = top
+  if not os.path.isabs(top_abs_path):
+    top_abs_path = os.path.join(os.getcwd(), top_abs_path)
+  top_abs_path = cobalt_archive_extract.ToWinUncPath(top)
   try:
-    names = os.listdir(top)
+    names = os.listdir(top_abs_path)
   except OSError as err:
     if onerror is not None:
       onerror(err)
     return
   dirs, nondirs = [], []
   for name in names:
-    if os.path.isdir(os.path.join(top, name)):
+    if os.path.isdir(os.path.join(top_abs_path, name)):
       dirs.append(name)
     else:
       nondirs.append(name)
diff --git a/src/starboard/build/win_symlink_fast.py b/src/starboard/build/win_symlink_fast.py
index e5c33af..7e8942f 100644
--- a/src/starboard/build/win_symlink_fast.py
+++ b/src/starboard/build/win_symlink_fast.py
@@ -119,7 +119,9 @@
 IO_REPARSE_TAG_SYMLINK = 0xA000000C
 MAXIMUM_REPARSE_DATA_BUFFER_SIZE = 0x4000
 SYMBOLIC_LINK_FLAG_DIRECTORY = 0x1
+# Developer Mode must be enabled in order to use the following flag.
 SYMBOLIC_LINK_FLAG_ALLOW_UNPRIVILEGED_CREATE = 0x2
+SYMLINK_FLAG_RELATIVE = 0x1
 
 
 class GenericReparseBuffer(ctypes.Structure):
@@ -143,6 +145,16 @@
     offset = type(self).PathBuffer.offset + self.PrintNameOffset
     return arrayt.from_address(ctypes.addressof(self) + offset).value
 
+  @property
+  def substitute_name(self):
+    arrayt = WCHAR * (self.SubstituteNameLength // 2)
+    offset = type(self).PathBuffer.offset + self.SubstituteNameOffset
+    return arrayt.from_address(ctypes.addressof(self) + offset).value
+
+  @property
+  def is_relative_path(self):
+    return bool(self.Flags & SYMLINK_FLAG_RELATIVE)
+
 
 class MountPointReparseBuffer(ctypes.Structure):
   """Win32 api data structure."""
@@ -158,6 +170,12 @@
     offset = type(self).PathBuffer.offset + self.PrintNameOffset
     return arrayt.from_address(ctypes.addressof(self) + offset).value
 
+  @property
+  def substitute_name(self):
+    arrayt = WCHAR * (self.SubstituteNameLength // 2)
+    offset = type(self).PathBuffer.offset + self.SubstituteNameOffset
+    return arrayt.from_address(ctypes.addressof(self) + offset).value
+
 
 class ReparseDataBuffer(ctypes.Structure):
   """Win32 api data structure."""
diff --git a/src/starboard/common/log.h b/src/starboard/common/log.h
index bc8caf1..c7e34e5 100644
--- a/src/starboard/common/log.h
+++ b/src/starboard/common/log.h
@@ -123,9 +123,19 @@
 #define SB_LAZY_STREAM(stream, condition) \
   !(condition) ? (void)0 : ::starboard::logging::LogMessageVoidify() & (stream)
 
+#if SB_LOGGING_IS_OFFICIAL_BUILD
+#define SB_LOG_IS_ON(severity)                        \
+  (::starboard::logging::SB_LOG_##severity >=         \
+   ::starboard::logging::SB_LOG_FATAL)                \
+      ? ((::starboard::logging::SB_LOG_##severity) >= \
+         ::starboard::logging::GetMinLogLevel())      \
+      : false
+#else  // SB_LOGGING_IS_OFFICIAL_BUILD
 #define SB_LOG_IS_ON(severity)                  \
   ((::starboard::logging::SB_LOG_##severity) >= \
-    ::starboard::logging::GetMinLogLevel())
+   ::starboard::logging::GetMinLogLevel())
+#endif  // SB_LOGGING_IS_OFFICIAL_BUILD
+
 #define SB_LOG_IF(severity, condition) \
   SB_LAZY_STREAM(SB_LOG_STREAM(severity), SB_LOG_IS_ON(severity) && (condition))
 #define SB_LOG(severity) SB_LOG_IF(severity, true)
diff --git a/src/starboard/common/rwlock.cc b/src/starboard/common/rwlock.cc
index 0a9c867..3e54d03 100644
--- a/src/starboard/common/rwlock.cc
+++ b/src/starboard/common/rwlock.cc
@@ -14,50 +14,61 @@
 
 #include "starboard/common/rwlock.h"
 
+#include "starboard/common/log.h"
+
 namespace starboard {
 
-RWLock::RWLock() : num_readers_(0), reader_(), writer_(1) {}
+// Write-preferring lock.
+// https://en.wikipedia.org/wiki/Readers%E2%80%93writer_lock
+RWLock::RWLock()
+    : readers_(0),
+      writing_(false) {
+  SB_CHECK(SbMutexCreate(&mutex_));
+  SB_CHECK(SbConditionVariableCreate(&condition_, &mutex_));
+}
 
-RWLock::~RWLock() {}
+RWLock::~RWLock() {
+  SbConditionVariableDestroy(&condition_);
+  SbMutexDestroy(&mutex_);
+}
 
 void RWLock::AcquireReadLock() {
-  reader_.Acquire();
-  if (0 == num_readers_++) {
-    AcquireWriteLock();
+  SB_CHECK(SbMutexAcquire(&mutex_) == kSbMutexAcquired);
+  while (writing_) {
+    SB_CHECK(SbConditionVariableWait(&condition_, &mutex_) !=
+             kSbConditionVariableFailed);
   }
-  reader_.Release();
+  ++readers_;
+  SB_CHECK(SbMutexRelease(&mutex_));
 }
 
 void RWLock::ReleaseReadLock() {
-  reader_.Acquire();
-  if (--num_readers_ == 0) {
-    ReleaseWriteLock();
+  SB_CHECK(SbMutexAcquire(&mutex_) == kSbMutexAcquired);
+  if (--readers_ == 0) {
+    SB_CHECK(SbConditionVariableBroadcast(&condition_));
   }
-  reader_.Release();
+  SB_CHECK(SbMutexRelease(&mutex_));
 }
 
 void RWLock::AcquireWriteLock() {
-  writer_.Take();
+  SB_CHECK(SbMutexAcquire(&mutex_) == kSbMutexAcquired);
+  while (writing_) {
+    SB_CHECK(SbConditionVariableWait(&condition_, &mutex_) !=
+             kSbConditionVariableFailed);
+  }
+  writing_ = true;
+  while (readers_ > 0) {
+    SB_CHECK(SbConditionVariableWait(&condition_, &mutex_) !=
+             kSbConditionVariableFailed);
+  }
+  SB_CHECK(SbMutexRelease(&mutex_));
 }
 
 void RWLock::ReleaseWriteLock() {
-  writer_.Put();
-}
-
-ScopedReadLock::ScopedReadLock(RWLock* rw_lock) : rw_lock_(rw_lock) {
-  rw_lock_->AcquireReadLock();
-}
-
-ScopedReadLock::~ScopedReadLock() {
-  rw_lock_->ReleaseReadLock();
-}
-
-ScopedWriteLock::ScopedWriteLock(RWLock* rw_lock) : rw_lock_(rw_lock) {
-  rw_lock_->AcquireWriteLock();
-}
-
-ScopedWriteLock::~ScopedWriteLock() {
-  rw_lock_->ReleaseWriteLock();
+  SB_CHECK(SbMutexAcquire(&mutex_) == kSbMutexAcquired);
+  writing_ = false;
+  SB_CHECK(SbConditionVariableBroadcast(&condition_));
+  SB_CHECK(SbMutexRelease(&mutex_));
 }
 
 }  // namespace starboard
diff --git a/src/starboard/common/rwlock.h b/src/starboard/common/rwlock.h
index 245a4d8..2ec8d05 100644
--- a/src/starboard/common/rwlock.h
+++ b/src/starboard/common/rwlock.h
@@ -20,8 +20,8 @@
 #ifndef STARBOARD_COMMON_RWLOCK_H_
 #define STARBOARD_COMMON_RWLOCK_H_
 
-#include "starboard/common/mutex.h"
-#include "starboard/common/semaphore.h"
+#include "starboard/condition_variable.h"
+#include "starboard/mutex.h"
 
 namespace starboard {
 
@@ -33,8 +33,7 @@
 // This RWLock is non-upgradeable, if the read lock is held then it must
 // be released before the write lock can be used.
 //
-// This implementation favors readers over writers. This implementation was
-// first described by Michel Raynal.
+// This implementation favors writers over readers.
 //
 // Example:
 //   std::map<...> my_map = ...;
@@ -43,15 +42,14 @@
 //
 //   bool Exists() {                     // This function is concurrent.
 //     rw_lock.AcquireReadLock();
-//     bool found = my_map.find(...);
+//     bool found = my_map.find(...) != my_map.end();
 //     rw_lock.ReleaseReadLock();
 //     return found;
 //   }
-//   bool Add(...) {                     // Write operations are exclusive.
+//   void Add(...) {                     // Write operations are exclusive.
 //     rw_lock.AcquireWriteLock();
-//     bool erased = my_map.erase(...);
+//     my_map.insert(...);
 //     rw_lock.ReleaseWriteLock();
-//     return erased;
 //   }
 class RWLock {
  public:
@@ -65,18 +63,20 @@
   void ReleaseWriteLock();
 
  private:
-  Mutex reader_;
-  // Semaphore is necessary because of shared ownership: a different
-  // thread can unlock a writer than the one that locks it.
-  Semaphore writer_;
-  int num_readers_;
+  SbMutex mutex_;
+  SbConditionVariable condition_;
+  int32_t readers_;
+  bool writing_;
+
   SB_DISALLOW_COPY_AND_ASSIGN(RWLock);
 };
 
 class ScopedReadLock {
  public:
-  explicit ScopedReadLock(RWLock* rw_lock);
-  ~ScopedReadLock();
+  explicit ScopedReadLock(RWLock* rw_lock) : rw_lock_(rw_lock) {
+    rw_lock_->AcquireReadLock();
+  }
+  ~ScopedReadLock() { rw_lock_->ReleaseReadLock(); }
 
  private:
   RWLock* rw_lock_;
@@ -85,8 +85,10 @@
 
 class ScopedWriteLock {
  public:
-  explicit ScopedWriteLock(RWLock* rw_lock);
-  ~ScopedWriteLock();
+  explicit ScopedWriteLock(RWLock* rw_lock) : rw_lock_(rw_lock) {
+    rw_lock_->AcquireWriteLock();
+  }
+  ~ScopedWriteLock() { rw_lock_->ReleaseWriteLock(); }
 
  private:
   RWLock* rw_lock_;
diff --git a/src/starboard/configuration.h b/src/starboard/configuration.h
index 4e16a26..e06b52e 100644
--- a/src/starboard/configuration.h
+++ b/src/starboard/configuration.h
@@ -567,24 +567,6 @@
 #error "SB_MEDIA_GPU_BUFFER_BUDGET is deprecated."
 #endif  // defined(SB_MEDIA_GPU_BUFFER_BUDGET)
 
-#if defined(SB_HAS_DRM_KEY_STATUSES)
-#if !SB_HAS(DRM_KEY_STATUSES)
-#error "SB_HAS_DRM_KEY_STATUSES is required for Starboard 6 or later."
-#endif  // !SB_HAS(DRM_KEY_STATUSES)
-#else   // defined(SB_HAS_DRM_KEY_STATUSES)
-#define SB_HAS_DRM_KEY_STATUSES 1
-#endif  // defined(SB_HAS_DRM_KEY_STATUSES)
-
-#if defined(SB_HAS_AUDIO_SPECIFIC_CONFIG_AS_POINTER)
-#if !SB_HAS(AUDIO_SPECIFIC_CONFIG_AS_POINTER)
-#error \
-    "SB_HAS_AUDIO_SPECIFIC_CONFIG_AS_POINTER is required for Starboard 6 " \
-       "or later."
-#endif  // !SB_HAS(AUDIO_SPECIFIC_CONFIG_AS_POINTER)
-#else   // defined(SB_HAS_AUDIO_SPECIFIC_CONFIG_AS_POINTER)
-#define SB_HAS_AUDIO_SPECIFIC_CONFIG_AS_POINTER 1
-#endif  // defined(SB_HAS_AUDIO_SPECIFIC_CONFIG_AS_POINTER)
-
 #if SB_API_VERSION >= 11
 #if defined(SB_HAS_MEDIA_IS_VIDEO_SUPPORTED_REFINEMENT)
 #if !SB_HAS(MEDIA_IS_VIDEO_SUPPORTED_REFINEMENT)
@@ -704,4 +686,28 @@
 #endif
 #endif
 
+// Deprecated feature macros
+// These feature macros are deprecated in Starboard version 6 and later, and are
+// no longer referenced by application code.  They will be removed in a future
+// version.  Any Starboard implementation that supports Starboard version 6 or
+// later should be modified to no longer depend on these macros, with the
+// assumption that their values are always 1.
+#if defined(SB_HAS_AUDIO_SPECIFIC_CONFIG_AS_POINTER)
+#if !SB_HAS(AUDIO_SPECIFIC_CONFIG_AS_POINTER)
+#error \
+    "SB_HAS_AUDIO_SPECIFIC_CONFIG_AS_POINTER is required for Starboard 6 " \
+       "or later."
+#endif  // !SB_HAS(AUDIO_SPECIFIC_CONFIG_AS_POINTER)
+#else   // defined(SB_HAS_AUDIO_SPECIFIC_CONFIG_AS_POINTER)
+#define SB_HAS_AUDIO_SPECIFIC_CONFIG_AS_POINTER 1
+#endif  // defined(SB_HAS_AUDIO_SPECIFIC_CONFIG_AS_POINTER)
+
+#if defined(SB_HAS_DRM_KEY_STATUSES)
+#if !SB_HAS(DRM_KEY_STATUSES)
+#error "SB_HAS_DRM_KEY_STATUSES is required for Starboard 6 or later."
+#endif  // !SB_HAS(DRM_KEY_STATUSES)
+#else   // defined(SB_HAS_DRM_KEY_STATUSES)
+#define SB_HAS_DRM_KEY_STATUSES 1
+#endif  // defined(SB_HAS_DRM_KEY_STATUSES)
+
 #endif  // STARBOARD_CONFIGURATION_H_
diff --git a/src/starboard/contrib/creator/shared/starboard_platform.gypi b/src/starboard/contrib/creator/shared/starboard_platform.gypi
index 4a5e4f8..e33ae3d 100644
--- a/src/starboard/contrib/creator/shared/starboard_platform.gypi
+++ b/src/starboard/contrib/creator/shared/starboard_platform.gypi
@@ -316,6 +316,7 @@
       '<(DEPTH)/starboard/shared/stub/system_get_used_gpu_memory.cc',
       '<(DEPTH)/starboard/shared/stub/system_hide_splash_screen.cc',
       '<(DEPTH)/starboard/shared/stub/system_raise_platform_error.cc',
+      '<(DEPTH)/starboard/shared/stub/system_sign_with_certification_secret_key.cc',
       '<(DEPTH)/starboard/shared/stub/ui_nav_get_interface.cc',
       '<(DEPTH)/starboard/shared/stub/window_get_diagonal_size_in_inches.cc',
     ],
diff --git a/src/starboard/drm.h b/src/starboard/drm.h
index 143cd94..35bdf7e 100644
--- a/src/starboard/drm.h
+++ b/src/starboard/drm.h
@@ -76,14 +76,12 @@
   int32_t encrypted_byte_count;
 } SbDrmSubSampleMapping;
 
-#if SB_HAS(DRM_KEY_STATUSES)
 typedef struct SbDrmKeyId {
   // The ID of the license (or key) required to decrypt this sample. For
   // PlayReady, this is the license GUID in packed little-endian binary form.
   uint8_t identifier[16];
   int identifier_size;
 } SbDrmKeyId;
-#endif  // SB_HAS(DRM_KEY_STATUSES)
 
 // All the optional information needed per sample for encrypted samples.
 typedef struct SbDrmSampleInfo {
@@ -187,7 +185,6 @@
 // A callback for notifications that the status of one or more keys in a session
 // has been changed.  All keys of the session and their new status will be
 // passed along.  Any keys not in the list is considered as deleted.
-#if SB_HAS(DRM_KEY_STATUSES)
 typedef void (*SbDrmSessionKeyStatusesChangedFunc)(
     SbDrmSystem drm_system,
     void* context,
@@ -196,7 +193,6 @@
     int number_of_keys,
     const SbDrmKeyId* key_ids,
     const SbDrmKeyStatus* key_statuses);
-#endif  // SB_HAS(DRM_KEY_STATUSES)
 
 // A callback for signalling that a session has been closed by the SbDrmSystem
 #if SB_HAS(DRM_SESSION_CLOSED)
@@ -284,11 +280,6 @@
 
 #elif SB_HAS(DRM_SESSION_CLOSED)
 
-#if !SB_HAS(DRM_KEY_STATUSES)
-#error "Platforms with SB_HAS_DRM_SESSION_CLOSED must also set "
-    "SB_HAS_DRM_KEY_STATUSES"
-#endif  // !SB_HAS(DRM_KEY_STATUSES)
-
 SB_EXPORT SbDrmSystem SbDrmCreateSystem(
     const char* key_system,
     void* context,
@@ -297,7 +288,7 @@
     SbDrmSessionKeyStatusesChangedFunc key_statuses_changed_callback,
     SbDrmSessionClosedFunc session_closed_callback);
 
-#elif SB_HAS(DRM_KEY_STATUSES)
+#else  // SB_HAS(DRM_SESSION_CLOSED)
 
 SB_EXPORT SbDrmSystem SbDrmCreateSystem(
     const char* key_system,
@@ -306,15 +297,7 @@
     SbDrmSessionUpdatedFunc session_updated_callback,
     SbDrmSessionKeyStatusesChangedFunc key_statuses_changed_callback);
 
-#else  // SB_HAS(DRM_KEY_STATUSES)
-
-SB_EXPORT SbDrmSystem
-SbDrmCreateSystem(const char* key_system,
-                  void* context,
-                  SbDrmSessionUpdateRequestFunc update_request_callback,
-                  SbDrmSessionUpdatedFunc session_updated_callback);
-
-#endif  // SB_HAS(DRM_KEY_STATUSES)
+#endif  // SB_HAS(DRM_SESSION_CLOSED)
 
 // Asynchronously generates a session update request payload for
 // |initialization_data|, of |initialization_data_size|, in case sensitive
diff --git a/src/starboard/elf_loader/elf_loader_impl.cc b/src/starboard/elf_loader/elf_loader_impl.cc
index f81db05..733da88 100644
--- a/src/starboard/elf_loader/elf_loader_impl.cc
+++ b/src/starboard/elf_loader/elf_loader_impl.cc
@@ -22,7 +22,12 @@
 namespace starboard {
 namespace elf_loader {
 
-ElfLoaderImpl::ElfLoaderImpl() {}
+ElfLoaderImpl::ElfLoaderImpl() {
+#if SB_API_VERSION < 12 || !SB_HAS(MMAP) || !SB_CAN(MAP_EXECUTABLE_MEMORY)
+  SB_CHECK(false) << "The elf_loader requires SB_API_VERSION >= 12 with "
+                     "executable memory map support!";
+#endif
+}
 
 bool ElfLoaderImpl::Load(const char* name) {
   SB_LOG(INFO) << "Loading: " << name;
@@ -103,11 +108,15 @@
 
   if (relocations_->HasTextRelocations()) {
     // Restores the memory protection to its original state.
+#if SB_API_VERSION >= 10 && SB_HAS(MMAP)
     if (program_table_->AdjustMemoryProtectionOfReadOnlySegments(
             kSbMemoryMapProtectReserved) < 0) {
       SB_LOG(ERROR) << "Unable to restore segment protection";
       return false;
     }
+#else
+    SB_CHECK(false);
+#endif
   }
 
   SB_LOG(INFO) << "Applied relocations";
diff --git a/src/starboard/elf_loader/exported_symbols.cc b/src/starboard/elf_loader/exported_symbols.cc
index a4c4539..ea440bf 100644
--- a/src/starboard/elf_loader/exported_symbols.cc
+++ b/src/starboard/elf_loader/exported_symbols.cc
@@ -14,19 +14,6 @@
 
 #include "starboard/elf_loader/exported_symbols.h"
 
-// TODO: Remove these once the API leaks are fixed.
-//#define LOCAL_TEST_WITH_API_LEAKS
-#ifdef LOCAL_TEST_WITH_API_LEAKS
-#include <dlfcn.h>
-#include <fcntl.h>
-#include <nl_types.h>
-#include <setjmp.h>
-#include <string.h>
-#include <sys/stat.h>
-#include <sys/types.h>
-#include <unistd.h>
-#endif
-
 #include "starboard/accessibility.h"
 #include "starboard/audio_sink.h"
 #include "starboard/byte_swap.h"
@@ -58,27 +45,21 @@
 #include "starboard/time_zone.h"
 #include "starboard/ui_navigation.h"
 
-// TODO: cleanup these hack as we fix the API leaks
-
-void tmp_dl_iterate_phdr() {
-  SB_LOG(INFO) << "tmp_dl_iterate_phdr";
-}
-
-void tmp__cxa_thread_atexit_impl() {
-  SB_LOG(INFO) << "tmp__cxa_thread_atexit_impl";
-}
-
 namespace starboard {
 namespace elf_loader {
 
 ExportedSymbols::ExportedSymbols() {
-    map_["SbAccessibilityGetDisplaySettings"] =
+  map_["SbAccessibilityGetDisplaySettings"] =
       reinterpret_cast<const void*>(SbAccessibilityGetDisplaySettings);
   map_["SbAccessibilityGetTextToSpeechSettings"] =
       reinterpret_cast<const void*>(SbAccessibilityGetTextToSpeechSettings);
   map_["SbAudioSinkCreate"] = reinterpret_cast<const void*>(SbAudioSinkCreate);
   map_["SbAudioSinkDestroy"] =
       reinterpret_cast<const void*>(SbAudioSinkDestroy);
+#if SB_API_VERSION >= 11
+  map_["SbAudioSinkGetMinBufferSizeInFrames"] =
+      reinterpret_cast<const void*>(SbAudioSinkGetMinBufferSizeInFrames);
+#endif
   map_["SbAudioSinkGetNearestSupportedSampleFrequency"] =
       reinterpret_cast<const void*>(
           SbAudioSinkGetNearestSupportedSampleFrequency);
@@ -114,7 +95,11 @@
       reinterpret_cast<const void*>(SbConditionVariableWait);
   map_["SbConditionVariableWaitTimed"] =
       reinterpret_cast<const void*>(SbConditionVariableWaitTimed);
+
+#if SB_API_VERSION >= 11
   map_["SbCPUFeaturesGet"] = reinterpret_cast<const void*>(SbCPUFeaturesGet);
+#endif
+
   map_["SbDecodeTargetGetInfo"] =
       reinterpret_cast<const void*>(SbDecodeTargetGetInfo);
   map_["SbDecodeTargetRelease"] =
@@ -137,10 +122,14 @@
       reinterpret_cast<const void*>(SbDrmDestroySystem);
   map_["SbDrmGenerateSessionUpdateRequest"] =
       reinterpret_cast<const void*>(SbDrmGenerateSessionUpdateRequest);
+
+#if SB_API_VERSION >= 10
   map_["SbDrmIsServerCertificateUpdatable"] =
       reinterpret_cast<const void*>(SbDrmIsServerCertificateUpdatable);
   map_["SbDrmUpdateServerCertificate"] =
       reinterpret_cast<const void*>(SbDrmUpdateServerCertificate);
+#endif
+
   map_["SbDrmUpdateSession"] =
       reinterpret_cast<const void*>(SbDrmUpdateSession);
   map_["SbEventCancel"] = reinterpret_cast<const void*>(SbEventCancel);
@@ -173,6 +162,8 @@
   map_["SbLogRawFormat"] = reinterpret_cast<const void*>(SbLogRawFormat);
   map_["SbMediaCanPlayMimeAndKeySystem"] =
       reinterpret_cast<const void*>(SbMediaCanPlayMimeAndKeySystem);
+
+#if SB_API_VERSION >= 10
   map_["SbMediaGetAudioBufferBudget"] =
       reinterpret_cast<const void*>(SbMediaGetAudioBufferBudget);
   map_["SbMediaGetBufferAlignment"] =
@@ -196,8 +187,13 @@
       reinterpret_cast<const void*>(SbMediaIsBufferPoolAllocateOnDemand);
   map_["SbMediaIsBufferUsingMemoryPool"] =
       reinterpret_cast<const void*>(SbMediaIsBufferUsingMemoryPool);
+#endif
+
+#if SB_API_VERSION >= 11
   map_["SbMediaSetAudioWriteDuration"] =
       reinterpret_cast<const void*>(SbMediaSetAudioWriteDuration);
+#endif
+
   map_["SbMemoryAllocateAlignedUnchecked"] =
       reinterpret_cast<const void*>(SbMemoryAllocateAlignedUnchecked);
   map_["SbMemoryAllocateUnchecked"] =
@@ -208,13 +204,23 @@
   map_["SbMemoryFree"] = reinterpret_cast<const void*>(SbMemoryFree);
   map_["SbMemoryFreeAligned"] =
       reinterpret_cast<const void*>(SbMemoryFreeAligned);
+
+#if SB_HAS(MMAP)
   map_["SbMemoryMap"] = reinterpret_cast<const void*>(SbMemoryMap);
+#endif
   map_["SbMemoryMove"] = reinterpret_cast<const void*>(SbMemoryMove);
+
+#if SB_API_VERSION >= 10 && SB_HAS(MMAP)
   map_["SbMemoryProtect"] = reinterpret_cast<const void*>(SbMemoryProtect);
+#endif
+
   map_["SbMemoryReallocateUnchecked"] =
       reinterpret_cast<const void*>(SbMemoryReallocateUnchecked);
   map_["SbMemorySet"] = reinterpret_cast<const void*>(SbMemorySet);
+
+#if SB_HAS(MMAP)
   map_["SbMemoryUnmap"] = reinterpret_cast<const void*>(SbMemoryUnmap);
+#endif
 
 #if SB_HAS(MICROPHONE)
   map_["SbMicrophoneClose"] = reinterpret_cast<const void*>(SbMicrophoneClose);
@@ -241,20 +247,33 @@
   map_["SbPlayerDestroy"] = reinterpret_cast<const void*>(SbPlayerDestroy);
   map_["SbPlayerGetCurrentFrame"] =
       reinterpret_cast<const void*>(SbPlayerGetCurrentFrame);
+
+#if SB_API_VERSION >= 10
   map_["SbPlayerGetInfo2"] = reinterpret_cast<const void*>(SbPlayerGetInfo2);
   map_["SbPlayerGetMaximumNumberOfSamplesPerWrite"] =
       reinterpret_cast<const void*>(SbPlayerGetMaximumNumberOfSamplesPerWrite);
+
+#endif
+
   map_["SbPlayerOutputModeSupported"] =
       reinterpret_cast<const void*>(SbPlayerOutputModeSupported);
+
+#if SB_API_VERSION >= 10
   map_["SbPlayerSeek2"] = reinterpret_cast<const void*>(SbPlayerSeek2);
+#endif
+
   map_["SbPlayerSetBounds"] = reinterpret_cast<const void*>(SbPlayerSetBounds);
   map_["SbPlayerSetPlaybackRate"] =
       reinterpret_cast<const void*>(SbPlayerSetPlaybackRate);
   map_["SbPlayerSetVolume"] = reinterpret_cast<const void*>(SbPlayerSetVolume);
   map_["SbPlayerWriteEndOfStream"] =
       reinterpret_cast<const void*>(SbPlayerWriteEndOfStream);
+
+#if SB_API_VERSION >= 10
   map_["SbPlayerWriteSample2"] =
       reinterpret_cast<const void*>(SbPlayerWriteSample2);
+#endif
+
   map_["SbSocketAccept"] = reinterpret_cast<const void*>(SbSocketAccept);
   map_["SbSocketBind"] = reinterpret_cast<const void*>(SbSocketBind);
   map_["SbSocketClearLastError"] = reinterpret_cast<const void*>(SbSocketClearLastError);
@@ -317,6 +336,9 @@
       reinterpret_cast<const void*>(SbSpeechRecognizerStart);
   map_["SbSpeechRecognizerStop"] =
       reinterpret_cast<const void*>(SbSpeechRecognizerStop);
+#endif
+
+#if SB_HAS(SPEECH_SYNTHESIS)
   map_["SbSpeechSynthesisCancel"] =
       reinterpret_cast<const void*>(SbSpeechSynthesisCancel);
   map_["SbSpeechSynthesisSpeak"] =
@@ -376,8 +398,12 @@
       reinterpret_cast<const void*>(SbSystemGetDeviceType);
   map_["SbSystemGetErrorString"] =
       reinterpret_cast<const void*>(SbSystemGetErrorString);
+
+#if SB_API_VERSION >= 11
   map_["SbSystemGetExtension"] =
       reinterpret_cast<const void*>(SbSystemGetExtension);
+#endif
+
   map_["SbSystemGetLastError"] =
       reinterpret_cast<const void*>(SbSystemGetLastError);
   map_["SbSystemGetLocaleId"] =
@@ -416,12 +442,26 @@
       reinterpret_cast<const void*>(SbSystemRequestSuspend);
   map_["SbSystemRequestUnpause"] =
       reinterpret_cast<const void*>(SbSystemRequestUnpause);
+
+#if SB_API_VERSION >= 11
+  map_["SbSystemSignWithCertificationSecretKey"] =
+      reinterpret_cast<const void*>(SbSystemSignWithCertificationSecretKey);
+#endif
+
   map_["SbSystemSort"] = reinterpret_cast<const void*>(SbSystemSort);
+
+#if SB_API_VERSION >= 10
   map_["SbSystemSupportsResume"] =
       reinterpret_cast<const void*>(SbSystemSupportsResume);
+#endif
+
   map_["SbSystemSymbolize"] = reinterpret_cast<const void*>(SbSystemSymbolize);
+
+#if SB_API_VERSION >= 11
   map_["SbThreadContextGetPointer"] =
       reinterpret_cast<const void*>(SbThreadContextGetPointer);
+#endif
+
   map_["SbThreadCreate"] = reinterpret_cast<const void*>(SbThreadCreate);
   map_["SbThreadCreateLocalKey"] =
       reinterpret_cast<const void*>(SbThreadCreateLocalKey);
@@ -435,14 +475,19 @@
       reinterpret_cast<const void*>(SbThreadGetLocalValue);
   map_["SbThreadIsEqual"] = reinterpret_cast<const void*>(SbThreadIsEqual);
   map_["SbThreadJoin"] = reinterpret_cast<const void*>(SbThreadJoin);
+
+#if SB_API_VERSION >= 11
   map_["SbThreadSamplerCreate"] =
       reinterpret_cast<const void*>(SbThreadSamplerCreate);
+
   map_["SbThreadSamplerDestroy"] =
       reinterpret_cast<const void*>(SbThreadSamplerDestroy);
   map_["SbThreadSamplerFreeze"] =
       reinterpret_cast<const void*>(SbThreadSamplerFreeze);
   map_["SbThreadSamplerThaw"] =
       reinterpret_cast<const void*>(SbThreadSamplerThaw);
+#endif
+
   map_["SbThreadSetLocalValue"] =
       reinterpret_cast<const void*>(SbThreadSetLocalValue);
   map_["SbThreadSetName"] = reinterpret_cast<const void*>(SbThreadSetName);
@@ -450,62 +495,44 @@
   map_["SbThreadYield"] = reinterpret_cast<const void*>(SbThreadYield);
   map_["SbTimeGetMonotonicNow"] =
       reinterpret_cast<const void*>(SbTimeGetMonotonicNow);
+
+#if SB_HAS(TIME_THREAD_NOW)
   map_["SbTimeGetMonotonicThreadNow"] =
       reinterpret_cast<const void*>(SbTimeGetMonotonicThreadNow);
+#endif
+
   map_["SbTimeGetNow"] = reinterpret_cast<const void*>(SbTimeGetNow);
   map_["SbTimeZoneGetCurrent"] =
       reinterpret_cast<const void*>(SbTimeZoneGetCurrent);
   map_["SbTimeZoneGetName"] = reinterpret_cast<const void*>(SbTimeZoneGetName);
+
 #if SB_API_VERSION >= SB_UI_NAVIGATION_VERSION
   map_["SbUiNavGetInterface"] =
       reinterpret_cast<const void*>(SbUiNavGetInterface);
 #endif
+
   map_["SbUserGetCurrent"] = reinterpret_cast<const void*>(SbUserGetCurrent);
   map_["SbUserGetProperty"] = reinterpret_cast<const void*>(SbUserGetProperty);
   map_["SbUserGetPropertySize"] =
       reinterpret_cast<const void*>(SbUserGetPropertySize);
   map_["SbWindowCreate"] = reinterpret_cast<const void*>(SbWindowCreate);
   map_["SbWindowDestroy"] = reinterpret_cast<const void*>(SbWindowDestroy);
+
+#if SB_API_VERSION >= 11
   map_["SbWindowGetDiagonalSizeInInches"] =
       reinterpret_cast<const void*>(SbWindowGetDiagonalSizeInInches);
+#endif
+
   map_["SbWindowGetPlatformHandle"] =
       reinterpret_cast<const void*>(SbWindowGetPlatformHandle);
   map_["SbWindowGetSize"] = reinterpret_cast<const void*>(SbWindowGetSize);
   map_["SbWindowSetDefaultOptions"] =
       reinterpret_cast<const void*>(SbWindowSetDefaultOptions);
-#ifdef LOCAL_TEST_WITH_API_LEAKS
-  map_["atexit"] = reinterpret_cast<const void*>(atexit);
-  map_["btowc"] = reinterpret_cast<const void*>(btowc);
-  map_["__ctype_get_mb_cur_max"] =
-  map_["__cxa_thread_atexit_impl"] =
-      reinterpret_cast<const void*>(tmp__cxa_thread_atexit_impl);
-  map_["dladdr"] = reinterpret_cast<const void*>(dladdr);
-  map_["dl_iterate_phdr"] = reinterpret_cast<const void*>(tmp_dl_iterate_phdr);
-  map_["longjmp"] = reinterpret_cast<const void*>(longjmp);
-  map_["mbrlen"] = reinterpret_cast<const void*>(mbrlen);
-  map_["mbrtowc"] = reinterpret_cast<const void*>(mbrtowc);
-  map_["mbsnrtowcs"] = reinterpret_cast<const void*>(mbsnrtowcs);
-  map_["mbsrtowcs"] = reinterpret_cast<const void*>(mbsrtowcs);
-  map_["mbtowc"] = reinterpret_cast<const void*>(mbtowc);
-
-  map_["setjmp"] = reinterpret_cast<const void*>(setjmp);
-  map_["wcrtomb"] = reinterpret_cast<const void*>(wcrtomb);
-  map_["wcsnrtombs"] = reinterpret_cast<const void*>(wcsnrtombs);
-  map_["wcstod"] = reinterpret_cast<const void*>(wcstod);
-  map_["wcstof"] = reinterpret_cast<const void*>(wcstof);
-  map_["wcstol"] = reinterpret_cast<const void*>(wcstol);
-  map_["wcstold"] = reinterpret_cast<const void*>(wcstold);
-  map_["wcstoll"] = reinterpret_cast<const void*>(wcstoll);
-  map_["wcstoul"] = reinterpret_cast<const void*>(wcstoul);
-  map_["wcstoull"] = reinterpret_cast<const void*>(wcstoull);
-  map_["wcsxfrm_l"] = reinterpret_cast<const void*>(wcsxfrm_l);
-  map_["wctob"] = reinterpret_cast<const void*>(wctob);
-#endif
 }
 
 const void* ExportedSymbols::Lookup(const char* name) {
   const void* ret = map_[name];
-  SB_CHECK(ret);
+  SB_CHECK(ret) << name;
   return ret;
 }
 }  // namespace elf_loader
diff --git a/src/starboard/elf_loader/program_table.cc b/src/starboard/elf_loader/program_table.cc
index 7542604..7b48e3c 100644
--- a/src/starboard/elf_loader/program_table.cc
+++ b/src/starboard/elf_loader/program_table.cc
@@ -18,10 +18,13 @@
 #include "starboard/memory.h"
 
 #define MAYBE_MAP_FLAG(x, from, to) (((x) & (from)) ? (to) : 0)
+
+#if SB_CAN(MAP_EXECUTABLE_MEMORY)
 #define PFLAGS_TO_PROT(x)                               \
   (MAYBE_MAP_FLAG((x), PF_X, kSbMemoryMapProtectExec) | \
    MAYBE_MAP_FLAG((x), PF_R, kSbMemoryMapProtectRead) | \
    MAYBE_MAP_FLAG((x), PF_W, kSbMemoryMapProtectWrite))
+#endif
 
 #define MAP_FAILED ((void*)-1)
 
@@ -69,6 +72,7 @@
 
   SB_LOG(INFO) << "page_max - page_min=" << page_max - page_min;
 
+#if SB_HAS(MMAP)
   phdr_mmap_ =
       SbMemoryMap(phdr_size_, kSbMemoryMapProtectWrite, "program_header");
   if (!phdr_mmap_) {
@@ -77,14 +81,16 @@
   }
 
   SB_LOG(INFO) << "Allocated address=" << phdr_mmap_;
-
+#else
+  SB_CHECK(false);
+#endif
   if (!elf_file->ReadFromOffset(page_min, reinterpret_cast<char*>(phdr_mmap_),
                                 phdr_size_)) {
     SB_LOG(ERROR) << "Failed to read program header from file offset: "
                   << page_min;
     return false;
   }
-
+#if SB_API_VERSION >= 10 && SB_HAS(MMAP)
   bool mp_result =
       SbMemoryProtect(phdr_mmap_, phdr_size_, kSbMemoryMapProtectRead);
   SB_LOG(INFO) << "mp_result=" << mp_result;
@@ -92,6 +98,10 @@
     SB_LOG(ERROR) << "Failed to protect program header";
     return false;
   }
+#else
+  SB_CHECK(false);
+#endif
+
   phdr_table_ = reinterpret_cast<Phdr*>(reinterpret_cast<char*>(phdr_mmap_) +
                                         page_offset);
 
@@ -130,6 +140,7 @@
                  << " file_length=" << file_length << " seg_page_start=0x"
                  << std::hex << seg_page_start;
 
+#if SB_API_VERSION >= 10 && SB_HAS(MMAP) && SB_CAN(MAP_EXECUTABLE_MEMORY)
     if (file_length != 0) {
       const int prot_flags = PFLAGS_TO_PROT(phdr->p_flags);
       SB_LOG(INFO) << "segment prot_flags=" << std::hex << prot_flags;
@@ -150,7 +161,6 @@
                      << file_page_start;
         return false;
       }
-
       mp_ret = SbMemoryProtect(seg_addr, file_length, prot_flags);
       SB_LOG(INFO) << "mp_ret=" << mp_ret;
       if (!mp_ret) {
@@ -162,6 +172,9 @@
         return false;
       }
     }
+#else
+    SB_CHECK(false);
+#endif
 
     // if the segment is writable, and does not end on a page boundary,
     // zero-fill it until the page limit.
@@ -177,6 +190,7 @@
     // between them. This is done by using a private anonymous
     // map for all extra pages.
     if (seg_page_end > seg_file_end) {
+#if SB_API_VERSION >= 10 && SB_HAS(MMAP) && SB_CAN(MAP_EXECUTABLE_MEMORY)
       bool mprotect_fix = SbMemoryProtect(reinterpret_cast<void*>(seg_file_end),
                                           seg_page_end - seg_file_end,
                                           kSbMemoryMapProtectWrite);
@@ -185,8 +199,13 @@
         SB_LOG(ERROR) << "Failed to unprotect end of segment";
         return false;
       }
+#else
+      SB_CHECK(false);
+#endif
+
       SbMemorySet(reinterpret_cast<void*>(seg_file_end), 0,
                   seg_page_end - seg_file_end);
+#if SB_API_VERSION >= 10 && SB_HAS(MMAP) && SB_CAN(MAP_EXECUTABLE_MEMORY)
       SbMemoryProtect(reinterpret_cast<void*>(seg_file_end),
                       seg_page_end - seg_file_end,
                       PFLAGS_TO_PROT(phdr->p_flags));
@@ -195,6 +214,9 @@
         SB_LOG(ERROR) << "Failed to protect end of segment";
         return false;
       }
+#else
+      SB_CHECK(false);
+#endif
     }
   }
   return true;
@@ -277,13 +299,16 @@
     Addr seg_page_start = PAGE_START(phdr->p_vaddr) + base_memory_address_;
     Addr seg_page_end =
         PAGE_END(phdr->p_vaddr + phdr->p_memsz) + base_memory_address_;
-
+#if SB_API_VERSION >= 10 && SB_HAS(MMAP) && SB_CAN(MAP_EXECUTABLE_MEMORY)
     int ret = SbMemoryProtect(reinterpret_cast<void*>(seg_page_start),
                               seg_page_end - seg_page_start,
                               PFLAGS_TO_PROT(phdr->p_flags) | extra_prot_flags);
     if (ret < 0) {
       return -1;
     }
+#else
+    SB_CHECK(false);
+#endif
   }
   return 0;
 }
@@ -297,6 +322,7 @@
 
   SB_LOG(INFO) << "Load size=" << load_size_;
 
+#if SB_API_VERSION >= 10 && SB_HAS(MMAP)
   load_start_ =
       SbMemoryMap(load_size_, kSbMemoryMapProtectReserved, "reserved_mem");
   if (load_start_ == MAP_FAILED) {
@@ -304,7 +330,9 @@
                   << " bytes of address space";
     return false;
   }
-
+#else
+  SB_CHECK(false);
+#endif
   base_memory_address_ = reinterpret_cast<Addr>(load_start_);
 
   SB_LOG(INFO) << "Load start=" << std::hex << load_start_
@@ -317,12 +345,16 @@
 }
 
 ProgramTable::~ProgramTable() {
+#if SB_HAS(MMAP)
   if (load_start_) {
     SbMemoryUnmap(load_start_, load_size_);
   }
   if (phdr_mmap_) {
     SbMemoryUnmap(phdr_mmap_, phdr_size_);
   }
+#else
+  SB_CHECK(false);
+#endif
 }
 
 }  // namespace elf_loader
diff --git a/src/starboard/elf_loader/relocations.cc b/src/starboard/elf_loader/relocations.cc
index 4b7131c..dae9157 100644
--- a/src/starboard/elf_loader/relocations.cc
+++ b/src/starboard/elf_loader/relocations.cc
@@ -242,7 +242,6 @@
 #if defined(USE_RELA)
 bool Relocations::ApplyResolvedReloc(const Rela* rela, Addr sym_addr) {
   const Word rela_type = ELF_R_TYPE(rela->r_info);
-  const Word rela_symbol = ELF_R_SYM(rela->r_info);
   const Sword addend = rela->r_addend;
   const Addr reloc = static_cast<Addr>(rela->r_offset + base_memory_address_);
 
@@ -274,10 +273,6 @@
       SB_LOG(INFO) << "  R_AARCH64_RELATIVE target=" << std::hex << target
                    << " " << *target
                    << " bias=" << base_memory_address_ + addend;
-      if (!rela_symbol) {
-        SB_LOG(ERROR) << "Invalid relative relocation with symbol";
-        return false;
-      }
       *target = base_memory_address_ + addend;
       break;
 
@@ -302,11 +297,6 @@
       break;
 
     case R_X86_64_RELATIVE:
-      if (rela_symbol) {
-        SB_LOG(ERROR) << "Invalid R_X86_64_RELATIVE";
-        return false;
-      }
-
       SB_LOG(INFO) << "  R_X86_64_RELATIVE target=" << std::hex << target << " "
                    << *target << " bias=" << base_memory_address_ + addend;
       *target = base_memory_address_ + addend;
@@ -331,8 +321,6 @@
 #else
 bool Relocations::ApplyResolvedReloc(const Rel* rel, Addr sym_addr) {
   const Word rel_type = ELF_R_TYPE(rel->r_info);
-  const Word rel_symbol = ELF_R_SYM(rel->r_info);
-
   const Addr reloc = static_cast<Addr>(rel->r_offset + base_memory_address_);
 
   SB_LOG(INFO) << "  rel reloc=0x" << std::hex << reloc << " offset=0x"
@@ -369,10 +357,6 @@
     case R_ARM_RELATIVE:
       SB_LOG(INFO) << "  RR_ARM_RELATIVE target=" << std::hex << target << " "
                    << *target << " bias=" << base_memory_address_;
-      if (!rel_symbol) {
-        SB_LOG(ERROR) << "Invalid relative relocation with symbol";
-        return false;
-      }
       *target += base_memory_address_;
       break;
 
@@ -401,10 +385,6 @@
       break;
 
     case R_386_RELATIVE:
-      if (rel_symbol) {
-        SB_LOG(ERROR) << "Invalid relative relocation with symbol";
-        return false;
-      }
       SB_LOG(INFO) << "  R_386_RELATIVE target=" << std::hex << target << " "
                    << *target << " bias=" << base_memory_address_;
 
diff --git a/src/starboard/linux/shared/drm_create_system.cc b/src/starboard/linux/shared/drm_create_system.cc
index 93ac58b..cde9aa9 100644
--- a/src/starboard/linux/shared/drm_create_system.cc
+++ b/src/starboard/linux/shared/drm_create_system.cc
@@ -22,11 +22,8 @@
     const char* key_system,
     void* context,
     SbDrmSessionUpdateRequestFunc update_request_callback,
-    SbDrmSessionUpdatedFunc session_updated_callback
-#if SB_HAS(DRM_KEY_STATUSES)
-    ,
+    SbDrmSessionUpdatedFunc session_updated_callback,
     SbDrmSessionKeyStatusesChangedFunc key_statuses_changed_callback
-#endif  // SB_HAS(DRM_KEY_STATUSES)
 #if SB_API_VERSION >= 10
     ,
     SbDrmServerCertificateUpdatedFunc server_certificate_updated_callback,
@@ -37,11 +34,9 @@
   if (!update_request_callback || !session_updated_callback) {
     return kSbDrmSystemInvalid;
   }
-#if SB_HAS(DRM_KEY_STATUSES)
   if (!key_statuses_changed_callback) {
     return kSbDrmSystemInvalid;
   }
-#endif  // SB_HAS(DRM_KEY_STATUSES)
 #if SB_API_VERSION >= 10
   if (!server_certificate_updated_callback || !session_closed_callback) {
     return kSbDrmSystemInvalid;
@@ -52,11 +47,8 @@
     return kSbDrmSystemInvalid;
   }
   return new DrmSystemWidevine(context, update_request_callback,
-                               session_updated_callback
-#if SB_HAS(DRM_KEY_STATUSES)
-                               ,
+                               session_updated_callback,
                                key_statuses_changed_callback
-#endif  // SB_HAS(DRM_KEY_STATUSES)
 #if SB_API_VERSION >= 10
                                ,
                                server_certificate_updated_callback
diff --git a/src/starboard/linux/shared/gyp_configuration.py b/src/starboard/linux/shared/gyp_configuration.py
index 56673d5..c77e593 100644
--- a/src/starboard/linux/shared/gyp_configuration.py
+++ b/src/starboard/linux/shared/gyp_configuration.py
@@ -71,6 +71,18 @@
     })
     return env_variables
 
+  def GetTestEnvVariables(self):
+    # Due to fragile nature of dynamic TLS tracking, in particular LSAN reliance
+    # on GLIBC private APIs, tracking TLS leaks is unstable and can trigger
+    # sporadic false positives and/or crashes, depending on the used compiler,
+    # direct library dependencies and runtime-loaded dynamic libraries. Hence,
+    # TLS leak tracing in LSAN is turned off.
+    # For reference, https://sourceware.org/ml/libc-alpha/2018-02/msg00567.html
+    # When failing, 'LeakSanitizer has encountered a fatal error' message would
+    # be printed at test shutdown, and env var LSAN_OPTIONS=verbosity=2 would
+    # further point to 'Scanning DTLS range ..' prior to crash.
+    return {'ASAN_OPTIONS': 'intercept_tls_get_addr=0'}
+
   def GetTestFilters(self):
     filters = super(LinuxConfiguration, self).GetTestFilters()
     for target, tests in self.__FILTERED_TESTS.iteritems():
diff --git a/src/starboard/linux/shared/media_is_audio_supported.cc b/src/starboard/linux/shared/media_is_audio_supported.cc
index f20d64a..d0d9c7a 100644
--- a/src/starboard/linux/shared/media_is_audio_supported.cc
+++ b/src/starboard/linux/shared/media_is_audio_supported.cc
@@ -23,7 +23,6 @@
     return bitrate <= SB_MEDIA_MAX_AUDIO_BITRATE_IN_BITS_PER_SECOND;
   }
 
-#if SB_HAS(AUDIO_SPECIFIC_CONFIG_AS_POINTER)
   if (audio_codec == kSbMediaAudioCodecOpus) {
     return bitrate <= SB_MEDIA_MAX_AUDIO_BITRATE_IN_BITS_PER_SECOND;
   }
@@ -34,7 +33,6 @@
     return bitrate <= SB_MEDIA_MAX_AUDIO_BITRATE_IN_BITS_PER_SECOND;
   }
 #endif  // SB_HAS(AC3_AUDIO)
-#endif  // SB_HAS(AUDIO_SPECIFIC_CONFIG_AS_POINTER)
 
   return false;
 }
diff --git a/src/starboard/linux/shared/starboard_platform.gypi b/src/starboard/linux/shared/starboard_platform.gypi
index b4f4566..1297986 100644
--- a/src/starboard/linux/shared/starboard_platform.gypi
+++ b/src/starboard/linux/shared/starboard_platform.gypi
@@ -227,6 +227,7 @@
       '<(DEPTH)/starboard/shared/starboard/audio_sink/audio_sink_create.cc',
       '<(DEPTH)/starboard/shared/starboard/audio_sink/audio_sink_destroy.cc',
       '<(DEPTH)/starboard/shared/starboard/audio_sink/audio_sink_get_max_channels_5_1.cc',
+      '<(DEPTH)/starboard/shared/starboard/audio_sink/audio_sink_get_min_buffer_size_in_frames.cc',
       '<(DEPTH)/starboard/shared/starboard/audio_sink/audio_sink_get_nearest_supported_sample_frequency.cc',
       '<(DEPTH)/starboard/shared/starboard/audio_sink/audio_sink_internal.cc',
       '<(DEPTH)/starboard/shared/starboard/audio_sink/audio_sink_internal.h',
@@ -317,7 +318,7 @@
       '<(DEPTH)/starboard/shared/starboard/window_set_default_options.cc',
       '<(DEPTH)/starboard/shared/stub/accessibility_get_display_settings.cc',
       '<(DEPTH)/starboard/shared/stub/accessibility_get_text_to_speech_settings.cc',
-      '<(DEPTH)/starboard/shared/stub/cpu_features_get.cc',
+      '<(DEPTH)/starboard/shared/linux/cpu_features_get.cc',
       '<(DEPTH)/starboard/shared/stub/cryptography_create_transformer.cc',
       '<(DEPTH)/starboard/shared/stub/cryptography_destroy_transformer.cc',
       '<(DEPTH)/starboard/shared/stub/cryptography_get_tag.cc',
@@ -339,6 +340,7 @@
       '<(DEPTH)/starboard/shared/stub/system_get_used_gpu_memory.cc',
       '<(DEPTH)/starboard/shared/stub/system_hide_splash_screen.cc',
       '<(DEPTH)/starboard/shared/stub/system_raise_platform_error.cc',
+      '<(DEPTH)/starboard/shared/stub/system_sign_with_certification_secret_key.cc',
       '<(DEPTH)/starboard/shared/stub/ui_nav_get_interface.cc',
       '<(DEPTH)/starboard/shared/stub/window_get_diagonal_size_in_inches.cc',
     ],
diff --git a/src/starboard/linux/x64x11/blittergles/sbversion/10/atomic_public.h b/src/starboard/linux/x64x11/blittergles/sbversion/10/atomic_public.h
new file mode 100644
index 0000000..071ab1b
--- /dev/null
+++ b/src/starboard/linux/x64x11/blittergles/sbversion/10/atomic_public.h
@@ -0,0 +1,23 @@
+// Copyright 2019 The Cobalt Authors. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// This file was initially generated by starboard/tools/create_derived_build.py,
+// though it may have been modified since its creation.
+
+#ifndef STARBOARD_LINUX_X64X11_BLITTERGLES_SBVERSION_10_ATOMIC_PUBLIC_H_
+#define STARBOARD_LINUX_X64X11_BLITTERGLES_SBVERSION_10_ATOMIC_PUBLIC_H_
+
+#include "starboard/linux/x64x11/blittergles/atomic_public.h"
+
+#endif  // STARBOARD_LINUX_X64X11_BLITTERGLES_SBVERSION_10_ATOMIC_PUBLIC_H_
diff --git a/src/starboard/linux/x64x11/blittergles/sbversion/10/configuration_public.h b/src/starboard/linux/x64x11/blittergles/sbversion/10/configuration_public.h
new file mode 100644
index 0000000..53a5d3f
--- /dev/null
+++ b/src/starboard/linux/x64x11/blittergles/sbversion/10/configuration_public.h
@@ -0,0 +1,23 @@
+// Copyright 2019 The Cobalt Authors. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// This file was initially generated by starboard/tools/create_derived_build.py,
+// though it may have been modified since its creation.
+
+#ifndef STARBOARD_LINUX_X64X11_BLITTERGLES_SBVERSION_10_CONFIGURATION_PUBLIC_H_
+#define STARBOARD_LINUX_X64X11_BLITTERGLES_SBVERSION_10_CONFIGURATION_PUBLIC_H_
+
+#include "starboard/linux/x64x11/blittergles/configuration_public.h"
+
+#endif  // STARBOARD_LINUX_X64X11_BLITTERGLES_SBVERSION_10_CONFIGURATION_PUBLIC_H_
diff --git a/src/starboard/linux/x64x11/blittergles/sbversion/10/gyp_configuration.gypi b/src/starboard/linux/x64x11/blittergles/sbversion/10/gyp_configuration.gypi
new file mode 100644
index 0000000..d9855d7
--- /dev/null
+++ b/src/starboard/linux/x64x11/blittergles/sbversion/10/gyp_configuration.gypi
@@ -0,0 +1,40 @@
+# Copyright 2019 The Cobalt Authors. All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# This file was initially generated by starboard/tools/create_derived_build.py,
+# though it may have been modified since its creation.
+
+{
+  'target_defaults': {
+    'default_configuration': 'linux-x64x11-blittergles-sbversion-10_debug',
+    'configurations': {
+      'linux-x64x11-blittergles-sbversion-10_debug': {
+        'inherit_from': ['debug_base'],
+      },
+      'linux-x64x11-blittergles-sbversion-10_devel': {
+        'inherit_from': ['devel_base'],
+      },
+      'linux-x64x11-blittergles-sbversion-10_qa': {
+        'inherit_from': ['qa_base'],
+      },
+      'linux-x64x11-blittergles-sbversion-10_gold': {
+        'inherit_from': ['gold_base'],
+      },
+    }, # end of configurations
+  },
+
+  'includes': [
+    '<(DEPTH)/starboard/linux/x64x11/blittergles/gyp_configuration.gypi',
+  ],
+}
diff --git a/src/starboard/linux/x64x11/blittergles/sbversion/10/gyp_configuration.py b/src/starboard/linux/x64x11/blittergles/sbversion/10/gyp_configuration.py
new file mode 100644
index 0000000..046bf56
--- /dev/null
+++ b/src/starboard/linux/x64x11/blittergles/sbversion/10/gyp_configuration.py
@@ -0,0 +1,25 @@
+# Copyright 2019 The Cobalt Authors. All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# This file was initially generated by starboard/tools/create_derived_build.py,
+# though it may have been modified since its creation.
+"""Starboard Linux X64X11 Blittergles Sbversion 10 platform configuration."""
+
+
+from starboard.linux.x64x11 import gyp_configuration as parent_configuration
+
+
+def CreatePlatformConfig():
+  return parent_configuration.LinuxX64X11Configuration(
+      'linux-x64x11-blittergles-sbversion-10')
diff --git a/src/starboard/linux/x64x11/blittergles/sbversion/10/starboard_platform.gyp b/src/starboard/linux/x64x11/blittergles/sbversion/10/starboard_platform.gyp
new file mode 100644
index 0000000..8163408
--- /dev/null
+++ b/src/starboard/linux/x64x11/blittergles/sbversion/10/starboard_platform.gyp
@@ -0,0 +1,24 @@
+# Copyright 2019 The Cobalt Authors. All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# This file was initially generated by starboard/tools/create_derived_build.py,
+# though it may have been modified since its creation.
+
+{
+  'includes': [
+    # Note that we are 'includes'ing a 'gyp' file, not a 'gypi' file.  The idea
+    # is that we just want this file to *be* the parent gyp file.
+    '<(DEPTH)/starboard/linux/x64x11/blittergles/starboard_platform.gyp',
+  ],
+}
diff --git a/src/starboard/linux/x64x11/blittergles/sbversion/10/starboard_platform_tests.gyp b/src/starboard/linux/x64x11/blittergles/sbversion/10/starboard_platform_tests.gyp
new file mode 100644
index 0000000..94e7cc2
--- /dev/null
+++ b/src/starboard/linux/x64x11/blittergles/sbversion/10/starboard_platform_tests.gyp
@@ -0,0 +1,24 @@
+# Copyright 2019 The Cobalt Authors. All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# This file was initially generated by starboard/tools/create_derived_build.py,
+# though it may have been modified since its creation.
+
+{
+  'includes': [
+    # Note that we are 'includes'ing a 'gyp' file, not a 'gypi' file.  The idea
+    # is that we just want this file to *be* the parent gyp file.
+    '<(DEPTH)/starboard/linux/x64x11/blittergles/starboard_platform_tests.gyp',
+  ],
+}
diff --git a/src/starboard/linux/x64x11/blittergles/sbversion/10/thread_types_public.h b/src/starboard/linux/x64x11/blittergles/sbversion/10/thread_types_public.h
new file mode 100644
index 0000000..cfe4a35
--- /dev/null
+++ b/src/starboard/linux/x64x11/blittergles/sbversion/10/thread_types_public.h
@@ -0,0 +1,23 @@
+// Copyright 2019 The Cobalt Authors. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// This file was initially generated by starboard/tools/create_derived_build.py,
+// though it may have been modified since its creation.
+
+#ifndef STARBOARD_LINUX_X64X11_BLITTERGLES_SBVERSION_10_THREAD_TYPES_PUBLIC_H_
+#define STARBOARD_LINUX_X64X11_BLITTERGLES_SBVERSION_10_THREAD_TYPES_PUBLIC_H_
+
+#include "starboard/linux/x64x11/blittergles/thread_types_public.h"
+
+#endif  // STARBOARD_LINUX_X64X11_BLITTERGLES_SBVERSION_10_THREAD_TYPES_PUBLIC_H_
diff --git a/src/starboard/linux/x64x11/blittergles/sbversion/11/atomic_public.h b/src/starboard/linux/x64x11/blittergles/sbversion/11/atomic_public.h
new file mode 100644
index 0000000..0fdbbea
--- /dev/null
+++ b/src/starboard/linux/x64x11/blittergles/sbversion/11/atomic_public.h
@@ -0,0 +1,23 @@
+// Copyright 2019 The Cobalt Authors. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// This file was initially generated by starboard/tools/create_derived_build.py,
+// though it may have been modified since its creation.
+
+#ifndef STARBOARD_LINUX_X64X11_BLITTERGLES_SBVERSION_11_ATOMIC_PUBLIC_H_
+#define STARBOARD_LINUX_X64X11_BLITTERGLES_SBVERSION_11_ATOMIC_PUBLIC_H_
+
+#include "starboard/linux/x64x11/blittergles/atomic_public.h"
+
+#endif  // STARBOARD_LINUX_X64X11_BLITTERGLES_SBVERSION_11_ATOMIC_PUBLIC_H_
diff --git a/src/starboard/linux/x64x11/blittergles/sbversion/11/configuration_public.h b/src/starboard/linux/x64x11/blittergles/sbversion/11/configuration_public.h
new file mode 100644
index 0000000..55cf0ba
--- /dev/null
+++ b/src/starboard/linux/x64x11/blittergles/sbversion/11/configuration_public.h
@@ -0,0 +1,23 @@
+// Copyright 2019 The Cobalt Authors. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// This file was initially generated by starboard/tools/create_derived_build.py,
+// though it may have been modified since its creation.
+
+#ifndef STARBOARD_LINUX_X64X11_BLITTERGLES_SBVERSION_11_CONFIGURATION_PUBLIC_H_
+#define STARBOARD_LINUX_X64X11_BLITTERGLES_SBVERSION_11_CONFIGURATION_PUBLIC_H_
+
+#include "starboard/linux/x64x11/blittergles/configuration_public.h"
+
+#endif  // STARBOARD_LINUX_X64X11_BLITTERGLES_SBVERSION_11_CONFIGURATION_PUBLIC_H_
diff --git a/src/starboard/linux/x64x11/blittergles/sbversion/11/gyp_configuration.gypi b/src/starboard/linux/x64x11/blittergles/sbversion/11/gyp_configuration.gypi
new file mode 100644
index 0000000..573d659
--- /dev/null
+++ b/src/starboard/linux/x64x11/blittergles/sbversion/11/gyp_configuration.gypi
@@ -0,0 +1,40 @@
+# Copyright 2019 The Cobalt Authors. All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# This file was initially generated by starboard/tools/create_derived_build.py,
+# though it may have been modified since its creation.
+
+{
+  'target_defaults': {
+    'default_configuration': 'linux-x64x11-blittergles-sbversion-11_debug',
+    'configurations': {
+      'linux-x64x11-blittergles-sbversion-11_debug': {
+        'inherit_from': ['debug_base'],
+      },
+      'linux-x64x11-blittergles-sbversion-11_devel': {
+        'inherit_from': ['devel_base'],
+      },
+      'linux-x64x11-blittergles-sbversion-11_qa': {
+        'inherit_from': ['qa_base'],
+      },
+      'linux-x64x11-blittergles-sbversion-11_gold': {
+        'inherit_from': ['gold_base'],
+      },
+    }, # end of configurations
+  },
+
+  'includes': [
+    '<(DEPTH)/starboard/linux/x64x11/blittergles/gyp_configuration.gypi',
+  ],
+}
diff --git a/src/starboard/linux/x64x11/blittergles/sbversion/11/gyp_configuration.py b/src/starboard/linux/x64x11/blittergles/sbversion/11/gyp_configuration.py
new file mode 100644
index 0000000..ff1fc94
--- /dev/null
+++ b/src/starboard/linux/x64x11/blittergles/sbversion/11/gyp_configuration.py
@@ -0,0 +1,24 @@
+# Copyright 2019 The Cobalt Authors. All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# This file was initially generated by starboard/tools/create_derived_build.py,
+# though it may have been modified since its creation.
+"""Starboard Linux X64X11 Blittergles Sbversion 11 platform configuration."""
+
+from starboard.linux.x64x11 import gyp_configuration as parent_configuration
+
+
+def CreatePlatformConfig():
+  return parent_configuration.LinuxX64X11Configuration(
+      'linux-x64x11-blittergles-sbversion-11')
diff --git a/src/starboard/linux/x64x11/blittergles/sbversion/11/starboard_platform.gyp b/src/starboard/linux/x64x11/blittergles/sbversion/11/starboard_platform.gyp
new file mode 100644
index 0000000..8163408
--- /dev/null
+++ b/src/starboard/linux/x64x11/blittergles/sbversion/11/starboard_platform.gyp
@@ -0,0 +1,24 @@
+# Copyright 2019 The Cobalt Authors. All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# This file was initially generated by starboard/tools/create_derived_build.py,
+# though it may have been modified since its creation.
+
+{
+  'includes': [
+    # Note that we are 'includes'ing a 'gyp' file, not a 'gypi' file.  The idea
+    # is that we just want this file to *be* the parent gyp file.
+    '<(DEPTH)/starboard/linux/x64x11/blittergles/starboard_platform.gyp',
+  ],
+}
diff --git a/src/starboard/linux/x64x11/blittergles/sbversion/11/starboard_platform_tests.gyp b/src/starboard/linux/x64x11/blittergles/sbversion/11/starboard_platform_tests.gyp
new file mode 100644
index 0000000..94e7cc2
--- /dev/null
+++ b/src/starboard/linux/x64x11/blittergles/sbversion/11/starboard_platform_tests.gyp
@@ -0,0 +1,24 @@
+# Copyright 2019 The Cobalt Authors. All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# This file was initially generated by starboard/tools/create_derived_build.py,
+# though it may have been modified since its creation.
+
+{
+  'includes': [
+    # Note that we are 'includes'ing a 'gyp' file, not a 'gypi' file.  The idea
+    # is that we just want this file to *be* the parent gyp file.
+    '<(DEPTH)/starboard/linux/x64x11/blittergles/starboard_platform_tests.gyp',
+  ],
+}
diff --git a/src/starboard/linux/x64x11/blittergles/sbversion/11/thread_types_public.h b/src/starboard/linux/x64x11/blittergles/sbversion/11/thread_types_public.h
new file mode 100644
index 0000000..3f38d1c
--- /dev/null
+++ b/src/starboard/linux/x64x11/blittergles/sbversion/11/thread_types_public.h
@@ -0,0 +1,23 @@
+// Copyright 2019 The Cobalt Authors. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// This file was initially generated by starboard/tools/create_derived_build.py,
+// though it may have been modified since its creation.
+
+#ifndef STARBOARD_LINUX_X64X11_BLITTERGLES_SBVERSION_11_THREAD_TYPES_PUBLIC_H_
+#define STARBOARD_LINUX_X64X11_BLITTERGLES_SBVERSION_11_THREAD_TYPES_PUBLIC_H_
+
+#include "starboard/linux/x64x11/blittergles/thread_types_public.h"
+
+#endif  // STARBOARD_LINUX_X64X11_BLITTERGLES_SBVERSION_11_THREAD_TYPES_PUBLIC_H_
diff --git a/src/starboard/linux/x64x11/blittergles/sbversion/6/atomic_public.h b/src/starboard/linux/x64x11/blittergles/sbversion/6/atomic_public.h
new file mode 100644
index 0000000..d2414dd
--- /dev/null
+++ b/src/starboard/linux/x64x11/blittergles/sbversion/6/atomic_public.h
@@ -0,0 +1,23 @@
+// Copyright 2019 The Cobalt Authors. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// This file was initially generated by starboard/tools/create_derived_build.py,
+// though it may have been modified since its creation.
+
+#ifndef STARBOARD_LINUX_X64X11_BLITTERGLES_SBVERSION_6_ATOMIC_PUBLIC_H_
+#define STARBOARD_LINUX_X64X11_BLITTERGLES_SBVERSION_6_ATOMIC_PUBLIC_H_
+
+#include "starboard/linux/x64x11/blittergles/atomic_public.h"
+
+#endif  // STARBOARD_LINUX_X64X11_BLITTERGLES_SBVERSION_6_ATOMIC_PUBLIC_H_
diff --git a/src/starboard/linux/x64x11/blittergles/sbversion/6/configuration_public.h b/src/starboard/linux/x64x11/blittergles/sbversion/6/configuration_public.h
new file mode 100644
index 0000000..e73676b
--- /dev/null
+++ b/src/starboard/linux/x64x11/blittergles/sbversion/6/configuration_public.h
@@ -0,0 +1,23 @@
+// Copyright 2019 The Cobalt Authors. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// This file was initially generated by starboard/tools/create_derived_build.py,
+// though it may have been modified since its creation.
+
+#ifndef STARBOARD_LINUX_X64X11_BLITTERGLES_SBVERSION_6_CONFIGURATION_PUBLIC_H_
+#define STARBOARD_LINUX_X64X11_BLITTERGLES_SBVERSION_6_CONFIGURATION_PUBLIC_H_
+
+#include "starboard/linux/x64x11/blittergles/configuration_public.h"
+
+#endif  // STARBOARD_LINUX_X64X11_BLITTERGLES_SBVERSION_6_CONFIGURATION_PUBLIC_H_
diff --git a/src/starboard/linux/x64x11/blittergles/sbversion/6/gyp_configuration.gypi b/src/starboard/linux/x64x11/blittergles/sbversion/6/gyp_configuration.gypi
new file mode 100644
index 0000000..44aba2b
--- /dev/null
+++ b/src/starboard/linux/x64x11/blittergles/sbversion/6/gyp_configuration.gypi
@@ -0,0 +1,40 @@
+# Copyright 2019 The Cobalt Authors. All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# This file was initially generated by starboard/tools/create_derived_build.py,
+# though it may have been modified since its creation.
+
+{
+  'target_defaults': {
+    'default_configuration': 'linux-x64x11-blittergles-sbversion-6_debug',
+    'configurations': {
+      'linux-x64x11-blittergles-sbversion-6_debug': {
+        'inherit_from': ['debug_base'],
+      },
+      'linux-x64x11-blittergles-sbversion-6_devel': {
+        'inherit_from': ['devel_base'],
+      },
+      'linux-x64x11-blittergles-sbversion-6_qa': {
+        'inherit_from': ['qa_base'],
+      },
+      'linux-x64x11-blittergles-sbversion-6_gold': {
+        'inherit_from': ['gold_base'],
+      },
+    }, # end of configurations
+  },
+
+  'includes': [
+    '<(DEPTH)/starboard/linux/x64x11/blittergles/gyp_configuration.gypi',
+  ],
+}
diff --git a/src/starboard/linux/x64x11/blittergles/sbversion/6/gyp_configuration.py b/src/starboard/linux/x64x11/blittergles/sbversion/6/gyp_configuration.py
new file mode 100644
index 0000000..6930874
--- /dev/null
+++ b/src/starboard/linux/x64x11/blittergles/sbversion/6/gyp_configuration.py
@@ -0,0 +1,39 @@
+# Copyright 2019 The Cobalt Authors. All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# This file was initially generated by starboard/tools/create_derived_build.py,
+# though it may have been modified since its creation.
+"""Starboard Linux X64X11 Blittergles Sbversion 6 platform configuration."""
+
+from starboard.linux.x64x11 import gyp_configuration as parent_configuration
+
+
+class LinuxX64X11BlitterglesSbversion6Configuration(
+    parent_configuration.LinuxX64X11Configuration('linux-x64x11-blittergles')):
+
+  def GetVariables(self, config_name):
+    variables = super(LinuxX64X11BlitterglesSbversion6Configuration,
+                      self).GetVariables(config_name)
+    # V8 requires new Starboard features so we must use SpiderMonkey in older
+    # versions of Starboard.
+    variables.update({
+        'javascript_engine': 'mozjs-45',
+        'cobalt_enable_jit': 0,
+    })
+    return variables
+
+
+def CreatePlatformConfig():
+  return parent_configuration.LinuxX64X11Configuration(
+      'linux-x64x11-blittergles-sbversion-6')
diff --git a/src/starboard/linux/x64x11/blittergles/sbversion/6/starboard_platform.gyp b/src/starboard/linux/x64x11/blittergles/sbversion/6/starboard_platform.gyp
new file mode 100644
index 0000000..8163408
--- /dev/null
+++ b/src/starboard/linux/x64x11/blittergles/sbversion/6/starboard_platform.gyp
@@ -0,0 +1,24 @@
+# Copyright 2019 The Cobalt Authors. All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# This file was initially generated by starboard/tools/create_derived_build.py,
+# though it may have been modified since its creation.
+
+{
+  'includes': [
+    # Note that we are 'includes'ing a 'gyp' file, not a 'gypi' file.  The idea
+    # is that we just want this file to *be* the parent gyp file.
+    '<(DEPTH)/starboard/linux/x64x11/blittergles/starboard_platform.gyp',
+  ],
+}
diff --git a/src/starboard/linux/x64x11/blittergles/sbversion/6/starboard_platform_tests.gyp b/src/starboard/linux/x64x11/blittergles/sbversion/6/starboard_platform_tests.gyp
new file mode 100644
index 0000000..94e7cc2
--- /dev/null
+++ b/src/starboard/linux/x64x11/blittergles/sbversion/6/starboard_platform_tests.gyp
@@ -0,0 +1,24 @@
+# Copyright 2019 The Cobalt Authors. All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# This file was initially generated by starboard/tools/create_derived_build.py,
+# though it may have been modified since its creation.
+
+{
+  'includes': [
+    # Note that we are 'includes'ing a 'gyp' file, not a 'gypi' file.  The idea
+    # is that we just want this file to *be* the parent gyp file.
+    '<(DEPTH)/starboard/linux/x64x11/blittergles/starboard_platform_tests.gyp',
+  ],
+}
diff --git a/src/starboard/linux/x64x11/blittergles/sbversion/6/thread_types_public.h b/src/starboard/linux/x64x11/blittergles/sbversion/6/thread_types_public.h
new file mode 100644
index 0000000..6e977ae
--- /dev/null
+++ b/src/starboard/linux/x64x11/blittergles/sbversion/6/thread_types_public.h
@@ -0,0 +1,23 @@
+// Copyright 2019 The Cobalt Authors. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// This file was initially generated by starboard/tools/create_derived_build.py,
+// though it may have been modified since its creation.
+
+#ifndef STARBOARD_LINUX_X64X11_BLITTERGLES_SBVERSION_6_THREAD_TYPES_PUBLIC_H_
+#define STARBOARD_LINUX_X64X11_BLITTERGLES_SBVERSION_6_THREAD_TYPES_PUBLIC_H_
+
+#include "starboard/linux/x64x11/blittergles/thread_types_public.h"
+
+#endif  // STARBOARD_LINUX_X64X11_BLITTERGLES_SBVERSION_6_THREAD_TYPES_PUBLIC_H_
diff --git a/src/starboard/linux/x64x11/clang/3.6/download_clang.sh b/src/starboard/linux/x64x11/clang/3.6/download_clang.sh
index 15815a2..0117209 100755
--- a/src/starboard/linux/x64x11/clang/3.6/download_clang.sh
+++ b/src/starboard/linux/x64x11/clang/3.6/download_clang.sh
@@ -24,9 +24,9 @@
 
 binary_path="llvm/Release+Asserts/bin/clang++"
 
-# This version of clang depends on libstdc++-7, version 7.3.0.
+# This version of clang depends on libstdc++-7, version 7.4.0.
 # The package "libstdc++-7-dev" provides that version.
-libstdcxx_version="7.3.0"
+libstdcxx_version="7.4.0"
 libstdcxx_path="libstdc++-7"
 libstdcxx_symlink_folder="${libstdcxx_path}/lib/gcc/x86_64-linux-gnu"
 symlink_path="${libstdcxx_symlink_folder}/${libstdcxx_version}"
diff --git a/src/starboard/linux/x64x11/gcc/6.3/compiler_flags.gypi b/src/starboard/linux/x64x11/gcc/6.3/compiler_flags.gypi
index 639e270..cd8b46d 100644
--- a/src/starboard/linux/x64x11/gcc/6.3/compiler_flags.gypi
+++ b/src/starboard/linux/x64x11/gcc/6.3/compiler_flags.gypi
@@ -74,6 +74,12 @@
       '-fno-delete-null-pointer-checks',
       # Do not warn about unused function params.
       '-Wno-unused-parameter',
+      # Do not warn about multi-character character constant values.
+      '-Wno-multichar',
+      # Do not warn for ignoring return value declared with attribute warn_unused_result.
+      '-Wno-unused-result',
+      # Do now warn for unknown pragmas.
+      '-Wno-unknown-pragmas',
     ],
     'conditions': [
       ['cobalt_fastbuild==0', {
diff --git a/src/starboard/linux/x64x11/gcc/6.3/download_gcc.sh b/src/starboard/linux/x64x11/gcc/6.3/download_gcc.sh
index 6453533..efdd807 100755
--- a/src/starboard/linux/x64x11/gcc/6.3/download_gcc.sh
+++ b/src/starboard/linux/x64x11/gcc/6.3/download_gcc.sh
@@ -24,7 +24,8 @@
 binary_path="gcc/bin/g++"
 build_duration="about 40 minutes"
 
-cd $(dirname $0)
+scriptfolder=$(dirname $(realpath $0))
+cd ${scriptfolder}
 source ../../toolchain_paths.sh
 
 (
@@ -35,7 +36,14 @@
     wget -c http://ftpmirror.gnu.org/gcc/gcc-${version}/${file}.sig
     wget -c http://ftp.gnu.org/gnu/gnu-keyring.gpg
     signature_invalid=`gpg --verify --no-default-keyring --keyring ./gnu-keyring.gpg ${file}.sig`
-    if [ $signature_invalid ]; then echo "Invalid signature" ; exit 1 ; fi
+    if [ $signature_invalid ]; then
+      echo "Invalid signature for " $file
+      exit 1
+    fi
+    echo "f06ae7f3f790fbf0f018f6d40e844451e6bc3b7bc96e128e63b09825c1f8b29f  gcc-6.3.0.tar.bz2" | sha256sum -c || (
+      echo "Invalid Checksum for " $file
+      exit 1
+    )
     rm -rf gcc-${version}
     tar -xjf ${file}
     cd gcc-${version}
@@ -43,9 +51,20 @@
     if [ -f ./contrib/download_prerequisites ]; then
       ./contrib/download_prerequisites
     fi
+
+    cat <<EOF  | sha256sum -c || ( echo "Invalid Checksum for prerequisites"; exit 1 )
+c7e75a08a8d49d2082e4caee1591a05d11b9d5627514e678f02d66a124bcf2ba  mpfr-2.4.2.tar.bz2
+936162c0312886c21581002b79932829aa048cfaf9937c6265aeaa14f1cd1775  gmp-4.3.2.tar.bz2
+e664603757251fd8a352848276497a4c79b7f8b21fd8aedd5cc0598a38fee3e4  mpc-0.8.1.tar.gz
+8ceebbf4d9a81afa2b4449113cee4b7cb14a687d7a549a963deb5e2a41458b6b  isl-0.15.tar.bz2
+EOF
     cd ${toolchain_path}
   fi
 
+  # Patches for compiling with gcc 7.2
+  patch -p1 <${scriptfolder}/ucontext.diff
+  patch -p1 <${scriptfolder}/nosanitizer.diff
+
   # Create clean build folder for gcc
   rm -rf gcc gcc-${version}-build
   mkdir gcc-${version}-build
diff --git a/src/starboard/linux/x64x11/gcc/6.3/gyp_configuration.py b/src/starboard/linux/x64x11/gcc/6.3/gyp_configuration.py
index a5e7568..0066119 100644
--- a/src/starboard/linux/x64x11/gcc/6.3/gyp_configuration.py
+++ b/src/starboard/linux/x64x11/gcc/6.3/gyp_configuration.py
@@ -49,13 +49,13 @@
     return variables
 
   def GetEnvironmentVariables(self):
-    env_variables = super(LinuxX64X11Gcc63Configuration,
-                          self).GetEnvironmentVariables()
     toolchain_bin_dir = os.path.join(self.toolchain_dir, 'bin')
-    env_variables.update({
+    env_variables = {
         'CC': os.path.join(toolchain_bin_dir, 'gcc'),
         'CXX': os.path.join(toolchain_bin_dir, 'g++'),
-    })
+        'CC_HOST': os.path.join(toolchain_bin_dir, 'gcc'),
+        'CXX_HOST': os.path.join(toolchain_bin_dir, 'g++'),
+    }
     return env_variables
 
 
diff --git a/src/starboard/linux/x64x11/gcc/6.3/nosanitizer.diff b/src/starboard/linux/x64x11/gcc/6.3/nosanitizer.diff
new file mode 100644
index 0000000..838bf56
--- /dev/null
+++ b/src/starboard/linux/x64x11/gcc/6.3/nosanitizer.diff
@@ -0,0 +1,17 @@
+diff -ur x86_64-linux-gnu-gcc-6.3.0.orig/gcc-6.3.0/libsanitizer/configure.tgt x86_64-linux-gnu-gcc-6.3.0/gcc-6.3.0/libsanitizer/configure.tgt
+--- x86_64-linux-gnu-gcc-6.3.0.orig/gcc-6.3.0/libsanitizer/configure.tgt	2015-11-23 01:07:18.000000000 -0800
++++ x86_64-linux-gnu-gcc-6.3.0/gcc-6.3.0/libsanitizer/configure.tgt	2019-08-13 15:41:51.394524015 -0700
+@@ -21,13 +21,6 @@
+ # Filter out unsupported systems.
+ TSAN_TARGET_DEPENDENT_OBJECTS=
+ case "${target}" in
+-  x86_64-*-linux* | i?86-*-linux*)
+-	if test x$ac_cv_sizeof_void_p = x8; then
+-		TSAN_SUPPORTED=yes
+-		LSAN_SUPPORTED=yes
+-		TSAN_TARGET_DEPENDENT_OBJECTS=tsan_rtl_amd64.lo
+-	fi
+-	;;
+   powerpc*-*-linux*)
+ 	;;
+   sparc*-*-linux*)
diff --git a/src/starboard/linux/x64x11/gcc/6.3/ucontext.diff b/src/starboard/linux/x64x11/gcc/6.3/ucontext.diff
new file mode 100644
index 0000000..31206da
--- /dev/null
+++ b/src/starboard/linux/x64x11/gcc/6.3/ucontext.diff
@@ -0,0 +1,33 @@
+diff -ur x86_64-linux-gnu-gcc-6.3.0.orig/gcc-6.3.0/libgcc/config/aarch64/linux-unwind.h x86_64-linux-gnu-gcc-6.3.0/gcc-6.3.0/libgcc/config/aarch64/linux-unwind.h
+--- x86_64-linux-gnu-gcc-6.3.0.orig/gcc-6.3.0/libgcc/config/aarch64/linux-unwind.h	2016-01-04 06:30:50.000000000 -0800
++++ x86_64-linux-gnu-gcc-6.3.0/gcc-6.3.0/libgcc/config/aarch64/linux-unwind.h	2019-08-13 14:11:12.318898306 -0700
+@@ -52,7 +52,7 @@
+   struct rt_sigframe
+   {
+     siginfo_t info;
+-    struct ucontext uc;
++    ucontext_t uc;
+   };
+ 
+   struct rt_sigframe *rt_;
+diff -ur x86_64-linux-gnu-gcc-6.3.0.orig/gcc-6.3.0/libgcc/config/i386/linux-unwind.h x86_64-linux-gnu-gcc-6.3.0/gcc-6.3.0/libgcc/config/i386/linux-unwind.h
+--- x86_64-linux-gnu-gcc-6.3.0.orig/gcc-6.3.0/libgcc/config/i386/linux-unwind.h	2016-01-04 06:30:50.000000000 -0800
++++ x86_64-linux-gnu-gcc-6.3.0/gcc-6.3.0/libgcc/config/i386/linux-unwind.h	2019-08-13 14:11:20.386855553 -0700
+@@ -58,7 +58,7 @@
+   if (*(unsigned char *)(pc+0) == 0x48
+       && *(unsigned long long *)(pc+1) == RT_SIGRETURN_SYSCALL)
+     {
+-      struct ucontext *uc_ = context->cfa;
++      ucontext_t *uc_ = context->cfa;
+       /* The void * cast is necessary to avoid an aliasing warning.
+          The aliasing warning is correct, but should not be a problem
+          because it does not alias anything.  */
+@@ -138,7 +138,7 @@
+ 	siginfo_t *pinfo;
+ 	void *puc;
+ 	siginfo_t info;
+-	struct ucontext uc;
++	ucontext_t uc;
+       } *rt_ = context->cfa;
+       /* The void * cast is necessary to avoid an aliasing warning.
+          The aliasing warning is correct, but should not be a problem
diff --git a/src/starboard/linux/x64x11/mock/gyp_configuration.py b/src/starboard/linux/x64x11/mock/gyp_configuration.py
index 450394f..2abddb0 100644
--- a/src/starboard/linux/x64x11/mock/gyp_configuration.py
+++ b/src/starboard/linux/x64x11/mock/gyp_configuration.py
@@ -27,8 +27,13 @@
     return 'ninja,qtcreator_ninja'
 
   def GetVariables(self, configuration):
-    return super(LinuxX64X11MockConfiguration, self).GetVariables(
+    variables = super(LinuxX64X11MockConfiguration, self).GetVariables(
         configuration, use_clang=1)
+    variables.update({
+        'javascript_engine': 'mozjs-45',
+        'cobalt_enable_jit': 0,
+    })
+    return variables
 
   def GetGeneratorVariables(self, configuration):
     del configuration
diff --git a/src/starboard/media.h b/src/starboard/media.h
index a34a3a4..e890124 100644
--- a/src/starboard/media.h
+++ b/src/starboard/media.h
@@ -496,11 +496,7 @@
 
   // The AudioSpecificConfig, as specified in ISO/IEC-14496-3, section 1.6.2.1:
   // http://read.pudn.com/downloads98/doc/comm/401153/14496/ISO_IEC_14496-3%20Part%203%20Audio/C036083E_SUB1.PDF
-#if SB_HAS(AUDIO_SPECIFIC_CONFIG_AS_POINTER)
   const void* audio_specific_config;
-#else  // SB_HAS(AUDIO_SPECIFIC_CONFIG_AS_POINTER)
-  int8_t audio_specific_config[8];
-#endif  // SB_HAS(AUDIO_SPECIFIC_CONFIG_AS_POINTER)
 } SbMediaAudioSampleInfo;
 
 #if SB_API_VERSION < 11
diff --git a/src/starboard/nplb/audio_sink_get_min_buffer_size_in_frames_test.cc b/src/starboard/nplb/audio_sink_get_min_buffer_size_in_frames_test.cc
new file mode 100644
index 0000000..a07a8c8
--- /dev/null
+++ b/src/starboard/nplb/audio_sink_get_min_buffer_size_in_frames_test.cc
@@ -0,0 +1,56 @@
+// Copyright 2019 The Cobalt Authors. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#include "starboard/audio_sink.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+namespace starboard {
+namespace nplb {
+
+#if SB_API_VERSION >= 11
+TEST(SbAudioSinkGetMinBufferSizeInFramesTest, SunnyDay) {
+  SbMediaAudioSampleType sample_type = kSbMediaAudioSampleTypeFloat32;
+  if (!SbAudioSinkIsAudioSampleTypeSupported(sample_type)) {
+    sample_type = kSbMediaAudioSampleTypeInt16Deprecated;
+  }
+  const int kDefaultSampleFrequency = 48000;
+  int max_channels = SbAudioSinkGetMaxChannels();
+  int min_required_frames = SbAudioSinkGetMinBufferSizeInFrames(
+      max_channels, sample_type,
+      SbAudioSinkGetNearestSupportedSampleFrequency(kDefaultSampleFrequency));
+
+  EXPECT_GT(min_required_frames, 0);
+  EXPECT_LE(min_required_frames, 10 * 1024);
+
+  if (max_channels > 1) {
+    min_required_frames = SbAudioSinkGetMinBufferSizeInFrames(
+        1, sample_type,
+        SbAudioSinkGetNearestSupportedSampleFrequency(kDefaultSampleFrequency));
+
+    EXPECT_GT(min_required_frames, 0);
+    EXPECT_LE(min_required_frames, 10 * 1024);
+  }
+  if (max_channels > 2) {
+    min_required_frames = SbAudioSinkGetMinBufferSizeInFrames(
+        2, sample_type,
+        SbAudioSinkGetNearestSupportedSampleFrequency(kDefaultSampleFrequency));
+
+    EXPECT_GT(min_required_frames, 0);
+    EXPECT_LE(min_required_frames, 10 * 1024);
+  }
+}
+#endif  // SB_API_VERSION >= 11
+
+}  // namespace nplb
+}  // namespace starboard
diff --git a/src/starboard/nplb/directory_get_next_test.cc b/src/starboard/nplb/directory_get_next_test.cc
index d382284..24c05ba 100644
--- a/src/starboard/nplb/directory_get_next_test.cc
+++ b/src/starboard/nplb/directory_get_next_test.cc
@@ -103,6 +103,20 @@
   EXPECT_FALSE(SbDirectoryGetNext(kSbDirectoryInvalid, NULL));
 }
 
+TEST(SbDirectoryGetNextTest, FailureOnEmptyDirectory) {
+  ScopedRandomFile dir(ScopedRandomFile::kDontCreate);
+  const std::string& path = dir.filename();
+  ASSERT_TRUE(SbDirectoryCreate(path.c_str()));
+  SbFileError error = kSbFileErrorMax;
+  SbDirectory directory = SbDirectoryOpen(path.c_str(), &error);
+  ASSERT_TRUE(SbDirectoryIsValid(directory));
+  ASSERT_EQ(kSbFileOk, error);
+
+  SbDirectoryEntry entry = {0};
+  EXPECT_FALSE(SbDirectoryGetNext(directory, &entry));
+  ASSERT_TRUE(SbDirectoryClose(directory));
+}
+
 }  // namespace
 }  // namespace nplb
 }  // namespace starboard
diff --git a/src/starboard/nplb/drm_create_system_test.cc b/src/starboard/nplb/drm_create_system_test.cc
index a59b86a..0b68275 100644
--- a/src/starboard/nplb/drm_create_system_test.cc
+++ b/src/starboard/nplb/drm_create_system_test.cc
@@ -119,7 +119,7 @@
       EXPECT_FALSE(SbDrmSystemIsValid(drm_system));
       SbDrmDestroySystem(drm_system);
     }
-#elif SB_HAS(DRM_KEY_STATUSES)
+#else   // SB_HAS(DRM_SESSION_CLOSED)
     {
       SbDrmSystem drm_system = SbDrmCreateSystem(
           key_system, NULL /* context */,
@@ -143,21 +143,7 @@
       EXPECT_FALSE(SbDrmSystemIsValid(drm_system));
       SbDrmDestroySystem(drm_system);
     }
-#else
-    {
-      SbDrmSystem drm_system = SbDrmCreateSystem(
-          key_system, NULL /* context */,
-          NULL /* session_update_request_func */, DummySessionUpdatedFunc);
-      EXPECT_FALSE(SbDrmSystemIsValid(drm_system));
-    }
-    {
-      SbDrmSystem drm_system = SbDrmCreateSystem(
-          key_system, NULL /* context */, DummySessionUpdateRequestFunc,
-          NULL /* session_updated_func */);
-      EXPECT_FALSE(SbDrmSystemIsValid(drm_system));
-      SbDrmDestroySystem(drm_system);
-    }
-#endif  // SB_HAS(DRM_KEY_STATUSES)
+#endif  // SB_HAS(DRM_SESSION_CLOSED)
   }
 }
 #endif  // SB_API_VERSION >= 10
diff --git a/src/starboard/nplb/drm_helpers.cc b/src/starboard/nplb/drm_helpers.cc
index 83a7a5e..930fb82 100644
--- a/src/starboard/nplb/drm_helpers.cc
+++ b/src/starboard/nplb/drm_helpers.cc
@@ -67,7 +67,6 @@
 
 #endif  // SB_API_VERSION >= 10
 
-#if SB_HAS(DRM_KEY_STATUSES)
 void DummySessionKeyStatusesChangedFunc(SbDrmSystem drm_system,
                                         void* context,
                                         const void* session_id,
@@ -75,7 +74,6 @@
                                         int number_of_keys,
                                         const SbDrmKeyId* key_ids,
                                         const SbDrmKeyStatus* key_statuses) {}
-#endif  // SB_HAS(DRM_KEY_STATUSES)
 
 void DummySessionClosedFunc(SbDrmSystem drm_system,
                             void* context,
@@ -93,15 +91,11 @@
       key_system, NULL /* context */, DummySessionUpdateRequestFunc,
       DummySessionUpdatedFunc, DummySessionKeyStatusesChangedFunc,
       DummySessionClosedFunc);
-#elif SB_HAS(DRM_KEY_STATUSES)
+#else   // SB_HAS(DRM_SESSION_CLOSED)
   return SbDrmCreateSystem(
       key_system, NULL /* context */, DummySessionUpdateRequestFunc,
       DummySessionUpdatedFunc, DummySessionKeyStatusesChangedFunc);
-#else   // SB_HAS(DRM_KEY_STATUSES)
-  return SbDrmCreateSystem(key_system, NULL /* context */,
-                           DummySessionUpdateRequestFunc,
-                           DummySessionUpdatedFunc);
-#endif  // SB_HAS(DRM_KEY_STATUSES)
+#endif  // SB_HAS(DRM_SESSION_CLOSED)
 }
 
 }  // namespace nplb
diff --git a/src/starboard/nplb/drm_helpers.h b/src/starboard/nplb/drm_helpers.h
index d48ed5e..f6d012d 100644
--- a/src/starboard/nplb/drm_helpers.h
+++ b/src/starboard/nplb/drm_helpers.h
@@ -68,7 +68,6 @@
 
 #endif  // SB_API_VERSION >= 10
 
-#if SB_HAS(DRM_KEY_STATUSES)
 void DummySessionKeyStatusesChangedFunc(SbDrmSystem drm_system,
                                         void* context,
                                         const void* session_id,
@@ -76,7 +75,6 @@
                                         int number_of_keys,
                                         const SbDrmKeyId* key_ids,
                                         const SbDrmKeyStatus* key_statuses);
-#endif  // SB_HAS(DRM_KEY_STATUSES)
 
 void DummySessionClosedFunc(SbDrmSystem drm_system,
                             void* context,
diff --git a/src/starboard/nplb/media_set_audio_write_duration_test.cc b/src/starboard/nplb/media_set_audio_write_duration_test.cc
index 0ca9a37..bcbe76a 100644
--- a/src/starboard/nplb/media_set_audio_write_duration_test.cc
+++ b/src/starboard/nplb/media_set_audio_write_duration_test.cc
@@ -242,7 +242,7 @@
   SbPlayerDestroy(player);
 }
 
-TEST_P(SbMediaSetAudioWriteDurationTest, WriteContinuedLimitedInput) {
+TEST_P(SbMediaSetAudioWriteDurationTest, FLAKY_WriteContinuedLimitedInput) {
   ASSERT_NE(dmp_reader_.audio_codec(), kSbMediaAudioCodecNone);
   ASSERT_GT(dmp_reader_.number_of_audio_buffers(), 0);
 
diff --git a/src/starboard/nplb/nplb.gyp b/src/starboard/nplb/nplb.gyp
index 4338c4d..0dce66d 100644
--- a/src/starboard/nplb/nplb.gyp
+++ b/src/starboard/nplb/nplb.gyp
@@ -46,6 +46,7 @@
         'audio_sink_create_test.cc',
         'audio_sink_destroy_test.cc',
         'audio_sink_get_max_channels_test.cc',
+        'audio_sink_get_min_buffer_size_in_frames_test.cc',
         'audio_sink_get_nearest_supported_sample_frequency_test.cc',
         'audio_sink_helpers.cc',
         'audio_sink_helpers.h',
@@ -264,6 +265,7 @@
         'system_hide_splash_screen_test.cc',
         'system_is_debugger_attached_test.cc',
         'system_sort_test.cc',
+        'system_sign_with_certification_secret_key_test.cc',
         'system_symbolize_test.cc',
         'thread_create_test.cc',
         'thread_detach_test.cc',
diff --git a/src/starboard/nplb/system_sign_with_certification_secret_key_test.cc b/src/starboard/nplb/system_sign_with_certification_secret_key_test.cc
new file mode 100644
index 0000000..7b22229
--- /dev/null
+++ b/src/starboard/nplb/system_sign_with_certification_secret_key_test.cc
@@ -0,0 +1,56 @@
+// Copyright 2019 The Cobalt Authors. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// SbDirectoryClose is well-covered in all the other tests, so just the
+// leftovers are here.
+
+#include <string>
+
+#include "starboard/system.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+#if SB_API_VERSION >= 11
+
+namespace starboard {
+namespace nplb {
+namespace {
+
+TEST(SbSystemSignWithCertificationSecretKeyTest, DoesNotCrash) {
+  const size_t kDigestSize = 32;
+  uint8_t digest[kDigestSize];
+
+  std::string message("test_message");
+  SbSystemSignWithCertificationSecretKey(
+      reinterpret_cast<const uint8_t*>(message.data()), message.size(), digest,
+      kDigestSize);
+}
+
+// Since SbSystemSignWithCertificationSecretKey() uses the SHA256 algorithm,
+// the output digest size must be at least 256 bits, or 32 bytes.
+TEST(SbSystemSignWithCertificationSecretKeyTest,
+     RainyDayFailsOnLessThan32Bytes) {
+  const size_t kDigestSize = 32;
+  uint8_t digest[kDigestSize];
+
+  std::string message("test_message");
+  EXPECT_FALSE(SbSystemSignWithCertificationSecretKey(
+      reinterpret_cast<const uint8_t*>(message.data()), message.size(), digest,
+      31));
+}
+
+}  // namespace
+}  // namespace nplb
+}  // namespace starboard
+
+#endif  // SB_API_VERSION >= 11
diff --git a/src/starboard/player.h b/src/starboard/player.h
index 4cb0cab..08e16d1 100644
--- a/src/starboard/player.h
+++ b/src/starboard/player.h
@@ -407,11 +407,9 @@
 //   Otherwise, |audio_sample_info| can be NULL. See media.h for the format of
 //   the |SbMediaAudioSampleInfo| struct.
 #endif  // SB_API_VERSION < 11
-#if SB_HAS(AUDIO_SPECIFIC_CONFIG_AS_POINTER)
 //   Note that |audio_specific_config| is a pointer and the content it points to
 //   is no longer valid after this function returns.  The implementation has to
 //   make a copy of the content if it is needed after the function returns.
-#endif  // SB_HAS(AUDIO_SPECIFIC_CONFIG_AS_POINTER)
 #if SB_API_VERSION >= 11
 // |max_video_capabilities|: This string communicates the video maximums to the
 //   platform. The web app will not provide a video stream exceeding the
diff --git a/src/starboard/raspi/0/gyp_configuration.py b/src/starboard/raspi/0/gyp_configuration.py
index 933c6ee..b247085 100644
--- a/src/starboard/raspi/0/gyp_configuration.py
+++ b/src/starboard/raspi/0/gyp_configuration.py
@@ -41,6 +41,11 @@
           # TODO: debug these failures.
           'SbPlayerTest.MultiPlayer',  # crashes
       ],
+      # Temporarily disable most of the tests until we can narrow it down to the
+      # minimum number of cases that are real test failures.
+      'player_filter_tests': [
+          'AudioDecoderTest.*',
+      ],
   }
 
 
diff --git a/src/starboard/raspi/shared/gyp_configuration.py b/src/starboard/raspi/shared/gyp_configuration.py
index e7668ea..f25f2a4 100644
--- a/src/starboard/raspi/shared/gyp_configuration.py
+++ b/src/starboard/raspi/shared/gyp_configuration.py
@@ -107,7 +107,6 @@
           # TODO: debug these failures.
           'VideoDecoderTests/VideoDecoderTest.EndOfStreamWithoutAnyInput/0',
           'VideoDecoderTests/VideoDecoderTest.MultipleResets/0',
-          'VideoDecoderTests/VideoDecoderTest.SingleInvalidInput/*',
           'VideoDecoderTests/VideoDecoderTest'
           '.MultipleValidInputsAfterInvalidKeyFrame/*',
           'VideoDecoderTests/VideoDecoderTest.MultipleInvalidInput/*',
diff --git a/src/starboard/raspi/shared/open_max/video_decoder.cc b/src/starboard/raspi/shared/open_max/video_decoder.cc
index 2d10bfc..712ff8b 100644
--- a/src/starboard/raspi/shared/open_max/video_decoder.cc
+++ b/src/starboard/raspi/shared/open_max/video_decoder.cc
@@ -203,9 +203,6 @@
       stream_ended = true;
     } else if (event->type == Event::kReset) {
       ScopedLock scoped_lock(mutex_);
-      component.Flush();
-      stream_ended = false;
-      eos_written = false;
 
       while (!freed_buffers_.empty()) {
         component.DropOutputBuffer(freed_buffers_.front());
@@ -216,6 +213,10 @@
         component.DropOutputBuffer(filled_buffers_.front());
         filled_buffers_.pop();
       }
+
+      component.Flush();
+      stream_ended = false;
+      eos_written = false;
     } else {
       SB_NOTREACHED() << "event type " << event->type;
     }
diff --git a/src/starboard/raspi/shared/starboard_platform.gypi b/src/starboard/raspi/shared/starboard_platform.gypi
index b20edc6..3c0ebb4 100644
--- a/src/starboard/raspi/shared/starboard_platform.gypi
+++ b/src/starboard/raspi/shared/starboard_platform.gypi
@@ -261,6 +261,7 @@
         '<(DEPTH)/starboard/shared/starboard/audio_sink/audio_sink_create.cc',
         '<(DEPTH)/starboard/shared/starboard/audio_sink/audio_sink_destroy.cc',
         '<(DEPTH)/starboard/shared/starboard/audio_sink/audio_sink_get_max_channels_5_1.cc',
+        '<(DEPTH)/starboard/shared/starboard/audio_sink/audio_sink_get_min_buffer_size_in_frames.cc',
         '<(DEPTH)/starboard/shared/starboard/audio_sink/audio_sink_get_nearest_supported_sample_frequency.cc',
         '<(DEPTH)/starboard/shared/starboard/audio_sink/audio_sink_is_audio_frame_storage_type_supported_interleaved_only.cc',
         '<(DEPTH)/starboard/shared/starboard/audio_sink/audio_sink_is_audio_sample_type_supported_float32_only.cc',
@@ -374,6 +375,7 @@
         '<(DEPTH)/starboard/shared/stub/system_get_used_gpu_memory.cc',
         '<(DEPTH)/starboard/shared/stub/system_hide_splash_screen.cc',
         '<(DEPTH)/starboard/shared/stub/system_raise_platform_error.cc',
+        '<(DEPTH)/starboard/shared/stub/system_sign_with_certification_secret_key.cc',
         '<(DEPTH)/starboard/shared/stub/ui_nav_get_interface.cc',
         '<(DEPTH)/starboard/shared/stub/window_get_diagonal_size_in_inches.cc',
       ],
diff --git a/src/starboard/shared/alsa/alsa_audio_sink_type.cc b/src/starboard/shared/alsa/alsa_audio_sink_type.cc
index a55e83f..62ae12b 100644
--- a/src/starboard/shared/alsa/alsa_audio_sink_type.cc
+++ b/src/starboard/shared/alsa/alsa_audio_sink_type.cc
@@ -261,6 +261,7 @@
     {
       ScopedLock lock(mutex_);
       if (destroying_) {
+        SB_DLOG(INFO) << "alsa::AlsaAudioSink exits idle loop : destroying";
         break;
       }
       playback_rate = playback_rate_;
@@ -270,6 +271,9 @@
     update_source_status_func_(&frames_in_buffer, &offset_in_frames,
                                &is_playing, &is_eos_reached, context_);
     if (is_playing && frames_in_buffer > 0 && playback_rate > 0.0) {
+      SB_DLOG(INFO) << "alsa::AlsaAudioSink exits idle loop : is playing "
+                    << is_playing << " frames in buffer " << frames_in_buffer
+                    << " playback_rate " << playback_rate;
       return true;
     }
     if (drain) {
@@ -294,6 +298,8 @@
       ScopedTryLock lock(mutex_);
       if (lock.is_locked()) {
         if (destroying_) {
+          SB_DLOG(INFO)
+              << "alsa::AlsaAudioSink exits playback loop : destroying";
           break;
         }
         playback_rate = playback_rate_;
@@ -302,6 +308,8 @@
 
     if (delayed_frame < kMinimumFramesInALSA) {
       if (playback_rate == 0.0) {
+        SB_DLOG(INFO)
+            << "alsa::AlsaAudioSink exits playback loop: playback rate 0";
         return true;
       }
       int frames_in_buffer, offset_in_frames;
@@ -309,6 +317,8 @@
       update_source_status_func_(&frames_in_buffer, &offset_in_frames,
                                  &is_playing, &is_eos_reached, context_);
       if (!is_playing || frames_in_buffer == 0) {
+        SB_DLOG(INFO) << "alsa::AlsaAudioSink exits playback loop: is playing "
+                      << is_playing << " frames in buffer " << frames_in_buffer;
         return true;
       }
       WriteFrames(playback_rate, std::min(kFramesPerRequest, frames_in_buffer),
@@ -338,6 +348,9 @@
           frames_to_buffer_end);
       consume_frame_func_(consumed, context_);
       if (consumed != frames_to_buffer_end) {
+        SB_DLOG(INFO) << "alsa::AlsaAudioSink exits write frames : consumed "
+                      << consumed << " frames, with " << frames_to_buffer_end
+                      << " frames to buffer end";
         return;
       }
 
diff --git a/src/starboard/shared/blittergles/blitter_create_default_device.cc b/src/starboard/shared/blittergles/blitter_create_default_device.cc
index abec352..8435118 100644
--- a/src/starboard/shared/blittergles/blitter_create_default_device.cc
+++ b/src/starboard/shared/blittergles/blitter_create_default_device.cc
@@ -115,16 +115,7 @@
     return kSbBlitterInvalidDevice;
   }
 
-  // When running on Xvfb, sometimes ANGLE fails to open the default X display.
-  // By retrying, we increase the chances that eglInitialize() will succeed.
-  // This is a temporary fix.
-  int max_tries = 3, num_tries = 0;
-  bool initialized = false;
-  do {
-    initialized = eglInitialize(device->display, NULL, NULL);
-    ++num_tries;
-  } while (!initialized && num_tries < max_tries);
-  if (!initialized) {
+  if (!eglInitialize(device->display, NULL, NULL)) {
     SB_DLOG(ERROR) << ": Failed to initialize device.";
     return kSbBlitterInvalidDevice;
   }
diff --git a/src/starboard/shared/iso/impl/directory_get_next.h b/src/starboard/shared/iso/impl/directory_get_next.h
index 488249f..1bb4a1d 100644
--- a/src/starboard/shared/iso/impl/directory_get_next.h
+++ b/src/starboard/shared/iso/impl/directory_get_next.h
@@ -36,12 +36,23 @@
     return false;
   }
 
+  // Look for the first directory that isn't current or parent.
   struct dirent dirent_buffer;
   struct dirent* dirent;
-  int result = readdir_r(directory->directory, &dirent_buffer, &dirent);
-  if (result || !dirent) {
-    return false;
-  }
+  int result;
+  do {
+    result = readdir_r(directory->directory, &dirent_buffer, &dirent);
+    if (!result && dirent) {
+      if ((SbStringCompareAll(dirent->d_name, ".") == 0) ||
+          (SbStringCompareAll(dirent->d_name, "..") == 0)) {
+        continue;
+      } else {
+        break;
+      }
+    } else {
+      return false;
+    }
+  } while (true);
 
   SbStringCopy(out_entry->name, dirent->d_name,
                SB_ARRAY_SIZE_INT(out_entry->name));
diff --git a/src/starboard/shared/linux/cpu_features_get.cc b/src/starboard/shared/linux/cpu_features_get.cc
index d8ce245..2eeedf1 100644
--- a/src/starboard/shared/linux/cpu_features_get.cc
+++ b/src/starboard/shared/linux/cpu_features_get.cc
@@ -12,6 +12,21 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
+// This file contains implementations of SbCPUFeaturesGet() on all supported
+// architectures defined in Starboard header cpu_features.h on linux platform.
+// We use the most applicable and precise approach to get CPU features on each
+// architecture. To be specific,
+//
+// On Arm/Arm64, we read CPU version information from /proc/cpuinfo. We get
+// feature flags by parsing HWCAP bitmasks retrieved from function getauxval()
+// or /proc/self/auxv, or by reading the flags from /proc/cpuinfo.
+//
+// On X86/X86_64, we read CPU version strings from /proc/cpuinfo. We get other
+// CPU version information and feature flags by CPUID instruction, which gives
+// more precise and complete information than reading from /proc/cpuinfo.
+//
+// TODO: Mips/Mips64 and Ppc/Ppc64
+
 #include "starboard/cpu_features.h"
 
 #include <dlfcn.h>         // dlsym, dlclose, dlopen
@@ -19,7 +34,7 @@
 #include <stdio.h>         // fopen, fclose
 #include <string.h>
 #include <strings.h>  // strcasecmp
-#include <sys/auxv.h>
+#include <sys/auxv.h>  // getauxval()
 #include <unistd.h>  // sysconf()
 #include <memory>
 
@@ -32,7 +47,10 @@
 
 namespace {
 
-// See <asm/hwcap.h> kernel header.
+#if SB_IS(ARCH_ARM)
+
+#if SB_IS(32_BIT)
+// See <arch/arm/include/uapi/asm/hwcap.h> kernel header.
 #define HWCAP_VFP (1 << 6)
 #define HWCAP_IWMMXT (1 << 9)
 #define HWCAP_NEON (1 << 12)
@@ -44,7 +62,6 @@
 #define HWCAP_VFPD32 (1 << 19) /* set if VFP has 32 regs (not 16) */
 #define HWCAP_IDIV (HWCAP_IDIVA | HWCAP_IDIVT)
 
-// see <uapi/asm/hwcap.h> kernel header
 #define HWCAP2_AES (1 << 0)
 #define HWCAP2_PMULL (1 << 1)
 #define HWCAP2_SHA1 (1 << 2)
@@ -55,39 +72,54 @@
 #define HWCAP_SET_FOR_ARMV8 \
   (HWCAP_VFP | HWCAP_NEON | HWCAP_VFPv3 | HWCAP_VFPv4 | HWCAP_IDIV)
 
+#elif SB_IS(64_BIT)
+// See <arch/arm64/include/uapi/asm/hwcap.h> kernel header
+#define HWCAP_FP (1 << 0)
+#define HWCAP_ASIMD (1 << 1)
+#define HWCAP_AES (1 << 3)
+#define HWCAP_PMULL (1 << 4)
+#define HWCAP_SHA1 (1 << 5)
+#define HWCAP_SHA2 (1 << 6)
+#define HWCAP_CRC32 (1 << 7)
+
+#endif  // SB_IS(32_BIT)
+
+#elif SB_IS(ARCH_X86)
+
+// x86_xgetbv returns the value of an Intel Extended Control Register (XCR).
+// Currently only XCR0 is defined by Intel so |xcr| should always be zero.
+uint64_t x86_xgetbv(uint32_t xcr) {
+  uint32_t eax, edx;
+
+  __asm__ volatile("xgetbv" : "=a"(eax), "=d"(edx) : "c"(xcr));
+  return (static_cast<uint64_t>(edx) << 32) | eax;
+}
+
+#if SB_IS(32_BIT)
+void x86_cpuid(int cpuid_info[4], int info_type) {
+  __asm__ volatile(
+      "mov %%ebx, %%edi\n"
+      "cpuid\n"
+      "xchg %%edi, %%ebx\n"
+      : "=a"(cpuid_info[0]), "=D"(cpuid_info[1]), "=c"(cpuid_info[2]),
+        "=d"(cpuid_info[3])
+      : "a"(info_type), "c"(0));
+}
+#elif SB_IS(64_BIT)
+void x86_cpuid(int cpuid_info[4], int info_type) {
+  __asm__ volatile("cpuid\n"
+                   : "=a"(cpuid_info[0]), "=b"(cpuid_info[1]),
+                     "=c"(cpuid_info[2]), "=d"(cpuid_info[3])
+                   : "a"(info_type), "c"(0));
+}
+#endif  // SB_IS(32_BIT)
+
+#endif  // SB_IS(ARCH_ARM)
+
 using starboard::shared::SetX86FeaturesInvalid;
 using starboard::shared::SetArmFeaturesInvalid;
 using starboard::shared::SetGeneralFeaturesInvalid;
 
-// Checks if a space-separated list of items |list|, in the form of a string,
-// contains one given item |item|.
-bool HasItemInList(const char* list, const char* flag) {
-  ssize_t flag_length = strlen(flag);
-  const char* list_ptr = list;
-  if (list_ptr == nullptr) {
-    return false;
-  }
-  while (*list_ptr != '\0') {
-    // Skip whitespace.
-    while (isspace(*list_ptr))
-      ++list_ptr;
-
-    // Find end of current list flag.
-    const char* end_ptr = list_ptr;
-    while (*end_ptr != '\0' && !isspace(*end_ptr))
-      ++end_ptr;
-
-    if (flag_length == end_ptr - list_ptr &&
-        memcmp(list_ptr, flag, flag_length) == 0) {
-      return true;
-    }
-
-    // Continue to the next flag.
-    list_ptr = end_ptr;
-  }
-  return false;
-}
-
 // Class that holds the information in system file /proc/cpuinfo.
 class ProcCpuInfo {
   // Raw data of the file /proc/cpuinfo
@@ -304,6 +336,36 @@
   return hwcap;
 }
 
+#if SB_IS(ARCH_ARM)
+// Checks if a space-separated list of items |list|, in the form of a string,
+// contains one given item |item|.
+bool HasItemInList(const char* list, const char* flag) {
+  ssize_t flag_length = strlen(flag);
+  const char* list_ptr = list;
+  if (list_ptr == nullptr) {
+    return false;
+  }
+  while (*list_ptr != '\0') {
+    // Skip whitespace.
+    while (isspace(*list_ptr))
+      ++list_ptr;
+
+    // Find end of current list flag.
+    const char* end_ptr = list_ptr;
+    while (*end_ptr != '\0' && !isspace(*end_ptr))
+      ++end_ptr;
+
+    if (flag_length == end_ptr - list_ptr &&
+        memcmp(list_ptr, flag, flag_length) == 0) {
+      return true;
+    }
+
+    // Continue to the next flag.
+    list_ptr = end_ptr;
+  }
+  return false;
+}
+
 // Construct hwcap bitmask by the feature flags in /proc/cpuinfo
 uint32_t ConstructHwcapFromCPUInfo(ProcCpuInfo* cpu_info,
                                    int16_t architecture_generation,
@@ -352,8 +414,13 @@
 bool SbCPUFeaturesGet_ARM(SbCPUFeatures* features) {
   memset(features, 0, sizeof(*features));
 
-  // Raspi is a 32-bit ARM platform.
+#if SB_IS(32_BIT)
   features->architecture = kSbCPUFeaturesArchitectureArm;
+#elif SB_IS(64_BIT)
+  features->architecture = kSbCPUFeaturesArchitectureArm64;
+#else
+#error "Your platform must be either 32-bit or 64-bit."
+#endif
 
   // Set the default value of the features to be invalid, then fill them in
   // if appropriate.
@@ -399,7 +466,11 @@
     // ARMv7-based CPU, and "(v6l)" for an ARMv6-one. For example,
     // the Raspberry Pi is one popular ARMv6 device that reports
     // architecture 7. The 'Processor' or 'model name' fields
-    // also contain processor brand information.
+    // also contain processor brand information. "model name" is used in
+    // Linux 3.8 and later (3.7
+    // and later for arm64) and is shown once per CPU. "Processor" is used in
+    // earler versions and is shown only once at the top of /proc/cpuinfo
+    // regardless of the number CPUs.
 
     // Allocate 256 bytes for "Processor"/"model name" field.
     static char brand_buffer[256] = {0};
@@ -418,6 +489,7 @@
     }
   }
 
+#if SB_IS(32_BIT)
   // Get hwcap bitmask and extract the CPU feature flags from it.
   features->hwcap = ReadElfHwcaps(AT_HWCAP);
   if (features->hwcap == 0) {
@@ -481,10 +553,22 @@
 
   features->arm.has_aes = (features->hwcap2 & HWCAP2_AES) != 0;
   features->arm.has_pmull = (features->hwcap2 & HWCAP2_PMULL) != 0;
-  features->arm.has_sha1 = (features->hwcap2 & HWCAP2_PMULL) != 0;
+  features->arm.has_sha1 = (features->hwcap2 & HWCAP2_SHA1) != 0;
   features->arm.has_sha2 = (features->hwcap2 & HWCAP2_SHA2) != 0;
   features->arm.has_crc32 = (features->hwcap2 & HWCAP2_CRC32) != 0;
 
+#elif SB_IS(64_BIT)
+  // Read hwcaps bitmask and extract the CPU feature flags from it.
+  features->hwcap = ReadElfHwcaps(AT_HWCAP);
+
+  features->arm.has_aes = (features->hwcap & HWCAP_AES) != 0;
+  features->arm.has_pmull = (features->hwcap & HWCAP_PMULL) != 0;
+  features->arm.has_sha1 = (features->hwcap & HWCAP_SHA1) != 0;
+  features->arm.has_sha2 = (features->hwcap & HWCAP_SHA2) != 0;
+  features->arm.has_crc32 = (features->hwcap & HWCAP_CRC32) != 0;
+
+#endif  // SB_IS(32_BIT)
+
   // Get L1 ICACHE and DCACHE line size.
   features->icache_line_size = sysconf(_SC_LEVEL1_ICACHE_LINESIZE);
   features->dcache_line_size = sysconf(_SC_LEVEL1_DCACHE_LINESIZE);
@@ -492,12 +576,158 @@
   return true;
 }
 
+#elif SB_IS(ARCH_X86)
+
+bool SbCPUFeaturesGet_X86(SbCPUFeatures* features) {
+  memset(features, 0, sizeof(*features));
+
+#if SB_IS(32_BIT)
+  features->architecture = kSbCPUFeaturesArchitectureX86;
+#elif SB_IS(64_BIT)
+  features->architecture = kSbCPUFeaturesArchitectureX86_64;
+#else
+#error "Your platform must be either 32-bit or 64-bit."
+#endif
+
+  // Set the default value of the features to be invalid, then fill them in
+  // if appropriate.
+  SetGeneralFeaturesInvalid(features);
+  SetArmFeaturesInvalid(features);
+  SetX86FeaturesInvalid(features);
+
+  ProcCpuInfo cpu_info;
+
+  // Extract brand and vendor information.
+  // Allocate 256 bytes for "model name" field.
+  static char brand_buffer[256] = {0};
+  if (cpu_info.ExtractStringFeature(
+          "model name", brand_buffer,
+          sizeof(brand_buffer) / sizeof(brand_buffer[0]))) {
+    features->brand = brand_buffer;
+  }
+
+  // Allocate 128 bytes for "vendor_id" field.
+  static char vendor_buffer[128] = {0};
+  if (cpu_info.ExtractStringFeature(
+          "vendor_id", vendor_buffer,
+          sizeof(vendor_buffer) / sizeof(vendor_buffer[0]))) {
+    features->x86.vendor = vendor_buffer;
+  }
+
+  // Get L1 ICACHE and DCACHE line size.
+  features->icache_line_size = sysconf(_SC_LEVEL1_ICACHE_LINESIZE);
+  features->dcache_line_size = sysconf(_SC_LEVEL1_DCACHE_LINESIZE);
+
+  // Hwcap bitmasks are not applicable to x86/x86_64. They'll remain 0.
+
+  // Use cpuid instruction to get feature flags.
+  int cpuid_info[4] = {0};
+
+  // x86_cpuid with an InfoType argument of 0 returns the number of
+  // valid Ids in cpuid_info[0].
+  x86_cpuid(cpuid_info, 0);
+  unsigned int num_ids = cpuid_info[0];
+
+  // Interpret CPU feature information of CPUID level 1. EAX is returned
+  // in cpuid_info[0], EBX in cpuid_info[1], ECX in cpuid_info[2],
+  // EDX in cpuid_info[3].
+  if (num_ids > 0) {
+    x86_cpuid(cpuid_info, 1);
+    features->x86.signature = cpuid_info[0];
+    features->x86.stepping = cpuid_info[0] & 0xF;
+    features->x86.model =
+        ((cpuid_info[0] >> 4) & 0xF) + ((cpuid_info[0] >> 12) & 0xF0);
+    features->x86.family = (cpuid_info[0] >> 8) & 0xF;
+    features->x86.type = (cpuid_info[0] >> 12) & 0x3;
+    features->x86.ext_model = (cpuid_info[0] >> 16) & 0xF;
+    features->x86.ext_family = (cpuid_info[0] >> 20) & 0xFF;
+
+    features->has_fpu = (cpuid_info[3] & (1 << 0)) != 0;
+
+    features->x86.has_cmov = (cpuid_info[3] & (1 << 15)) != 0;
+    features->x86.has_mmx = (cpuid_info[3] & (1 << 23)) != 0;
+    features->x86.has_sse = (cpuid_info[3] & (1 << 25)) != 0;
+    features->x86.has_sse2 = (cpuid_info[3] & (1 < 26)) != 0;
+    features->x86.has_tsc = (cpuid_info[3] & (1 << 4)) != 0;
+
+    features->x86.has_sse3 = (cpuid_info[2] & (1 << 0)) != 0;
+    features->x86.has_ssse3 = (cpuid_info[2] & (1 << 9)) != 0;
+    features->x86.has_sse41 = (cpuid_info[2] & (1 << 19)) != 0;
+    features->x86.has_sse42 = (cpuid_info[2] & (1 << 20)) != 0;
+    features->x86.has_movbe = (cpuid_info[2] & (1 << 22)) != 0;
+    features->x86.has_popcnt = (cpuid_info[2] & (1 << 23)) != 0;
+    features->x86.has_osxsave = (cpuid_info[2] & (1 << 27)) != 0;
+    features->x86.has_f16c = (cpuid_info[2] & (1 << 29)) != 0;
+    features->x86.has_fma3 = (cpuid_info[2] & (1 << 12)) != 0;
+    features->x86.has_aesni = (cpuid_info[2] & (1 << 25)) != 0;
+
+    // AVX instructions will generate an illegal instruction exception unless
+    //   a) they are supported by the CPU,
+    //   b) XSAVE is supported by the CPU and
+    //   c) XSAVE is enabled by the kernel.
+    // See http://software.intel.com/en-us/blogs/2011/04/14/is-avx-enabled
+    //
+    // In addition, we have observed some crashes with the xgetbv instruction
+    // even after following Intel's example code. (See crbug.com/375968.)
+    // Because of that, we also test the XSAVE bit because its description in
+    // the CPUID documentation suggests that it signals xgetbv support.
+    features->x86.has_avx =
+        (cpuid_info[2] & (1 << 28)) != 0 &&
+        (cpuid_info[2] & (1 << 26)) != 0 /* XSAVE */ &&
+        (cpuid_info[2] & (1 << 27)) != 0 /* OSXSAVE */ &&
+        (x86_xgetbv(0) & 6) == 6 /* XSAVE enabled by kernel */;
+  }
+
+  // Interpret CPU feature information of CPUID level 7.
+  if (num_ids >= 7) {
+    x86_cpuid(cpuid_info, 7);
+    features->x86.has_avx2 =
+        features->x86.has_avx && (cpuid_info[1] & (1 << 5)) != 0;
+    features->x86.has_avx512f =
+        features->x86.has_avx && (cpuid_info[1] & (1 << 16)) != 0;
+    features->x86.has_avx512dq =
+        features->x86.has_avx && (cpuid_info[1] & (1 << 17)) != 0;
+    features->x86.has_avx512ifma =
+        features->x86.has_avx && (cpuid_info[1] & (1 << 21)) != 0;
+    features->x86.has_avx512pf =
+        features->x86.has_avx && (cpuid_info[1] & (1 << 26)) != 0;
+    features->x86.has_avx512er =
+        features->x86.has_avx && (cpuid_info[1] & (1 << 27)) != 0;
+    features->x86.has_avx512cd =
+        features->x86.has_avx && (cpuid_info[1] & (1 << 28)) != 0;
+    features->x86.has_avx512bw =
+        features->x86.has_avx && (cpuid_info[1] & (1 << 30)) != 0;
+    features->x86.has_avx512vl =
+        features->x86.has_avx && (cpuid_info[1] & (1 << 31)) != 0;
+    features->x86.has_bmi1 = (cpuid_info[1] & (1 << 3)) != 0;
+    features->x86.has_bmi2 = (cpuid_info[1] & (1 << 8)) != 0;
+  }
+
+  // Query extended IDs.
+  x86_cpuid(cpuid_info, 0x80000000);
+  unsigned int num_ext_ids = cpuid_info[0];
+
+  // Interpret extended CPU feature information.
+  if (num_ext_ids > 0x80000000) {
+    // Interpret CPU feature information of CPUID level 0x80000001.
+    x86_cpuid(cpuid_info, 0x80000001);
+    features->x86.has_lzcnt = (cpuid_info[2] & (1 << 5)) != 0;
+    // SAHF must be probed in long mode.
+    features->x86.has_sahf = (cpuid_info[2] & (1 << 0)) != 0;
+  }
+
+  return true;
+}
+#endif
+
 }  // namespace
 
-// TODO: Only ARM is currently implemented and tested
+// TODO: Only ARM/ARM64 and X86/X86_64 are currently implemented and tested
 bool SbCPUFeaturesGet(SbCPUFeatures* features) {
 #if SB_IS(ARCH_ARM)
   return SbCPUFeaturesGet_ARM(features);
+#elif SB_IS(ARCH_X86)
+  return SbCPUFeaturesGet_X86(features);
 #else
   SB_NOTIMPLEMENTED();
 
diff --git a/src/starboard/shared/linux/dev_input/dev_input.cc b/src/starboard/shared/linux/dev_input/dev_input.cc
index b051f00..4e76bb4 100644
--- a/src/starboard/shared/linux/dev_input/dev_input.cc
+++ b/src/starboard/shared/linux/dev_input/dev_input.cc
@@ -21,12 +21,15 @@
 #include <string.h>
 #include <sys/time.h>
 #include <unistd.h>
+#include <unordered_map>
 #include <vector>
 
 #include <algorithm>
 #include <cmath>
 #include <map>
+#include <memory>
 #include <string>
+#include <vector>
 
 #include "starboard/common/log.h"
 #include "starboard/common/string.h"
@@ -35,6 +38,7 @@
 #include "starboard/input.h"
 #include "starboard/key.h"
 #include "starboard/memory.h"
+#include "starboard/once.h"
 #include "starboard/shared/posix/handle_eintr.h"
 #include "starboard/shared/posix/time_internal.h"
 
@@ -60,15 +64,149 @@
   kTouchPadPositionAll = kTouchPadPositionX | kTouchPadPositionY
 };
 
+class ControllerTuning {
+ public:
+  ~ControllerTuning() {}
+
+  uint16_t GetKeyCode(uint16_t from);
+  void MapKeyCode(uint16_t from, uint16_t to) { key_map_[from] = to; }
+
+  float GetMinimumFlat() { return minimum_flat_; }
+  void SetMinimumFlat(float value) { minimum_flat_ = value; }
+
+ protected:
+  // Only create this object from DeviceMap::CreateControllerTuning()
+  ControllerTuning() {}
+
+ private:
+  std::unordered_map<int, int> key_map_;
+  float minimum_flat_ = 0;
+
+  friend class DeviceMap;
+};
+
+uint16_t ControllerTuning::GetKeyCode(uint16_t from) {
+  auto mapped_code = key_map_.find(from);
+  if (mapped_code != key_map_.end()) {
+    return mapped_code->second;
+  }
+  return from;
+}
+
+class DeviceMap {
+ public:
+  DeviceMap();
+  ~DeviceMap() = delete;
+
+  // Gets the singleton instance of the default DeviceMap. This
+  // is created the first time it is used.
+  static DeviceMap* Get();
+
+  // Return the controller tuning object for a given device. Return null if none
+  // is registered.
+  ControllerTuning* GetControllerTuning(const std::string& device) const;
+
+ private:
+  // Create a controllertuning object.
+  ControllerTuning* CreateControllerTuning();
+
+  // Register a controller tuning object for a given device.
+  void RegisterControllerTuning(const std::string& device,
+                                ControllerTuning* tuning);
+
+  std::unordered_map<std::string, ControllerTuning*> device_map_;
+
+  // Registry for all known controller tunings.
+  std::vector<std::unique_ptr<ControllerTuning>> controller_tunings_;
+};
+
+DeviceMap::DeviceMap() {
+  // Add key mappings for the Xbox controllers.
+  ControllerTuning* xbox_one_controller = CreateControllerTuning();
+  RegisterControllerTuning("Microsoft X-Box One S pad", xbox_one_controller);
+  RegisterControllerTuning("Microsoft X-Box One pad", xbox_one_controller);
+  RegisterControllerTuning("Microsoft X-Box 360 pad", xbox_one_controller);
+  xbox_one_controller->SetMinimumFlat(0.125);
+  xbox_one_controller->MapKeyCode(BTN_NORTH, BTN_WEST);  // Map for 'X'
+  xbox_one_controller->MapKeyCode(BTN_WEST, BTN_NORTH);  // Map for 'Y'
+  xbox_one_controller->MapKeyCode(BTN_TL, BTN_TL2);      // Map for left bumper.
+  xbox_one_controller->MapKeyCode(BTN_TR, BTN_TR2);  // Map for right bumper.
+
+  // Add key mappings for the PlayStation 4 controller.
+  ControllerTuning* ps4_controller = CreateControllerTuning();
+  RegisterControllerTuning("Sony Interactive Entertainment Wireless Controller",
+                           ps4_controller);
+  RegisterControllerTuning("Sony Computer Entertainment Wireless Controller",
+                           ps4_controller);
+  RegisterControllerTuning("Sony PLAYSTATION(R)3 Controller", ps4_controller);
+
+  ps4_controller->MapKeyCode(BTN_TL2, BTN_TL);  // Map for left trigger.
+  ps4_controller->MapKeyCode(BTN_TR2, BTN_TR);  // Map for right trigger.
+  ps4_controller->MapKeyCode(BTN_TL, BTN_TL2);  // Map for left bumper.
+  ps4_controller->MapKeyCode(BTN_TR, BTN_TR2);  // Map for right bumper.
+
+  // Add key mappings for the Horipad Switch wired controller.
+  ControllerTuning* switch_controller = CreateControllerTuning();
+  RegisterControllerTuning("HORI CO.,LTD. HORIPAD S", switch_controller);
+
+  switch_controller->MapKeyCode(BTN_C, BTN_SOUTH);     // Map for 'A'.
+  switch_controller->MapKeyCode(BTN_A, BTN_NORTH);     // Map for 'Y'.
+  switch_controller->MapKeyCode(BTN_NORTH, BTN_WEST);  // Map for 'X'.
+  switch_controller->MapKeyCode(BTN_WEST, BTN_TL2);    // Map for left bumper.
+  switch_controller->MapKeyCode(BTN_Z, BTN_TR2);       // Map for right bumper.
+
+  switch_controller->MapKeyCode(BTN_THUMBL, BTN_SELECT);  // Map for 'capture'.
+  switch_controller->MapKeyCode(BTN_MODE, KEY_HOME);      // Map for 'home'.
+
+  switch_controller->MapKeyCode(BTN_TL2, KEY_KPMINUS);  // Map for '-'.
+  switch_controller->MapKeyCode(BTN_TR2, KEY_KPPLUS);   // Map for '+'.
+
+  switch_controller->MapKeyCode(BTN_SELECT, BTN_THUMBL);  // Map for left hat.
+  switch_controller->MapKeyCode(BTN_START, BTN_THUMBR);   // Map for right hat.
+}
+
+void DeviceMap::RegisterControllerTuning(const std::string& device,
+                                         ControllerTuning* tuning) {
+  SB_DCHECK(GetControllerTuning(device) == NULL ||
+            GetControllerTuning(device) == tuning);
+  device_map_[device] = tuning;
+}
+
+ControllerTuning* DeviceMap::CreateControllerTuning() {
+  ControllerTuning* tuning = new ControllerTuning();
+  controller_tunings_.emplace_back(tuning);
+  return tuning;
+}
+
+ControllerTuning* DeviceMap::GetControllerTuning(
+    const std::string& device) const {
+  auto mapped_device = device_map_.find(device);
+  if (mapped_device != device_map_.end()) {
+    return mapped_device->second;
+  }
+  return NULL;
+}
+
+SB_ONCE_INITIALIZE_FUNCTION(DeviceMap, GetDeviceMap);
+
+DeviceMap* DeviceMap::Get() {
+  DeviceMap* device_map = GetDeviceMap();
+  return device_map;
+}
+
 struct InputDeviceInfo {
   InputDeviceInfo() : fd(-1), touchpad_position_state(kTouchPadPositionNone) {}
 
+  // Device Name
+  std::string name;
+
   // File descriptor open for the device
   FileDescriptor fd;
   // Absolute Axis info.
   std::map<int, struct input_absinfo> axis_info;
   std::map<int, float> axis_value;
   int touchpad_position_state;
+  ControllerTuning* tuning;
 };
 
 bool IsTouchpadPositionKnown(InputDeviceInfo* device_info) {
@@ -92,21 +230,22 @@
   // Converts an input_event into a kSbEventInput Application::Event. The caller
   // is responsible for deleting the returned event.
   Event* InputToApplicationEvent(const struct input_event& event,
-                                 InputDeviceInfo* device_info,
-                                 int modifiers);
+                                 int modifiers,
+                                 InputDeviceInfo* device_info);
 
   // Converts an input_event containing a key input into a kSbEventInput
   // Application::Event. The caller is responsible for deleting the returned
   // event.
   Event* KeyInputToApplicationEvent(const struct input_event& event,
-                                    int modifiers);
+                                    int modifiers,
+                                    InputDeviceInfo* device_info);
 
   // Converts an input_event containing an axis event into a kSbEventInput
   // Application::Event. The caller is responsible for deleting the returned
   // event.
   Event* AxisInputToApplicationEvent(const struct input_event& event,
-                                     InputDeviceInfo* device_info,
-                                     int modifiers);
+                                     int modifiers,
+                                     InputDeviceInfo* device_info);
 
   // The window to attribute /dev/input events to.
   SbWindow window_;
@@ -432,34 +571,28 @@
       return kSbKeyGamepadDPadLeft;
     case BTN_DPAD_RIGHT:
       return kSbKeyGamepadDPadRight;
-    // The mapping for the buttons below can vary from controller to controller.
-    // TODO: Include button mapping for controllers with different layout.
-    case BTN_B:
-      return kSbKeyGamepad1;
-    case BTN_C:
-      return kSbKeyGamepad2;
-    case BTN_A:
-      return kSbKeyGamepad3;
-    case BTN_X:
-      return kSbKeyGamepad4;
-    case BTN_Y:
-      return kSbKeyGamepadLeftBumper;
-    case BTN_Z:
-      return kSbKeyGamepadRightBumper;
     case BTN_TL2:
-      return kSbKeyGamepad5;
+      return kSbKeyGamepadLeftBumper;
     case BTN_TR2:
-      return kSbKeyGamepad6;
+      return kSbKeyGamepadRightBumper;
+    case BTN_SOUTH:
+      return kSbKeyGamepad1;
+    case BTN_EAST:
+      return kSbKeyGamepad2;
+    case BTN_WEST:
+      return kSbKeyGamepad3;
+    case BTN_NORTH:
+      return kSbKeyGamepad4;
     case BTN_SELECT:
-      return kSbKeyGamepadLeftStick;
+      return kSbKeyGamepad5;
     case BTN_START:
-      return kSbKeyGamepadRightStick;
+      return kSbKeyGamepad6;
     case BTN_MODE:
       return kSbKeyGamepadSystem;
     case BTN_THUMBL:
-      return kSbKeyGamepad1;
+      return kSbKeyGamepadLeftStick;
     case BTN_THUMBR:
-      return kSbKeyGamepad1;
+      return kSbKeyGamepadRightStick;
   }
   SB_DLOG(WARNING) << "Unknown code: 0x" << std::hex << code;
   return kSbKeyUnknown;
@@ -494,19 +627,26 @@
   return !!(bitset.at(bit / 8) & (1 << (bit % 8)));
 }
 
-bool IsAxisFlat(float median, const struct input_absinfo& axis_info) {
+bool IsAxisFlat(int minimum_flat,
+                float rest_value,
+                const struct input_absinfo& axis_info) {
   SB_DCHECK((axis_info.flat * 2) <= (axis_info.maximum - axis_info.minimum));
-  return (axis_info.flat != 0) && (axis_info.value > median - axis_info.flat) &&
-         (axis_info.value < median + axis_info.flat);
+  int flat = std::max(minimum_flat, axis_info.flat);
+  return (flat != 0) && (axis_info.value > rest_value - flat) &&
+         (axis_info.value < rest_value + flat);
 }
 
-float GetAxisValue(const struct input_absinfo& axis_info) {
+float GetAxisValue(bool is_trigger,
+                   float minimum_flat,
+                   const struct input_absinfo& axis_info) {
   float median =
       static_cast<float>(axis_info.maximum + axis_info.minimum) / 2.0f;
-  if (IsAxisFlat(median, axis_info))
-    return 0;
   float range = static_cast<float>(axis_info.maximum - axis_info.minimum);
   float radius = range / 2.0f;
+  if (IsAxisFlat(minimum_flat * radius, is_trigger ? axis_info.minimum : median,
+                 axis_info)) {
+    return is_trigger ? -1 : 0;
+  }
   // Scale the axis value to [-1, 1].
   float axis_value = (static_cast<float>(axis_info.value) - median) / radius;
 
@@ -532,11 +672,22 @@
       return;
     }
     info->axis_info.insert(std::make_pair(axis, axis_info));
-    info->axis_value.insert(std::make_pair(axis, GetAxisValue(axis_info)));
+    bool is_trigger = axis == ABS_Z || axis == ABS_RZ;
+    info->axis_value.insert(std::make_pair(
+        axis,
+        GetAxisValue(is_trigger, info->tuning->GetMinimumFlat(), axis_info)));
   }
 }
 
 void GetInputDeviceInfo(InputDeviceInfo* info) {
+  char device_name[1024];
+  if (ioctl(info->fd, EVIOCGNAME(sizeof(device_name)), device_name) >= 0) {
+    size_t length = strnlen(device_name, sizeof(device_name));
+    info->name.assign(device_name, length);
+  }
+
+  info->tuning = DeviceMap::Get()->GetControllerTuning(info->name);
+
   std::vector<uint8_t> axis_bits(BytesNeededForBitSet(KEY_MAX));
   int result =
       ioctl(info->fd, EVIOCGBIT(EV_ABS, axis_bits.size()), axis_bits.data());
@@ -811,7 +962,7 @@
       continue;
     }
 
-    return InputToApplicationEvent(event, &device, modifiers);
+    return InputToApplicationEvent(event, modifiers, &device);
   }
   return NULL;
 }
@@ -968,8 +1119,8 @@
 
 DevInput::Event* DevInputImpl::AxisInputToApplicationEvent(
     const struct input_event& event,
-    InputDeviceInfo* device_info,
-    int modifiers) {
+    int modifiers,
+    InputDeviceInfo* device_info) {
   SB_DCHECK(event.type == EV_ABS);
   SbKey key = kSbKeyUnknown;
   float axis_value = 0;
@@ -978,7 +1129,9 @@
   if (axis_info_it != device_info->axis_info.end()) {
     struct input_absinfo& axis_info = axis_info_it->second;
     axis_info.value = event.value;
-    axis_value = GetAxisValue(axis_info);
+    bool is_trigger = event.code == ABS_Z || event.code == ABS_RZ;
+    axis_value = GetAxisValue(is_trigger, device_info->tuning->GetMinimumFlat(),
+                              axis_info);
     float& stored_axis_value = device_info->axis_value[event.code];
     previous_axis_value = stored_axis_value;
     if (previous_axis_value == axis_value) {
@@ -1009,21 +1162,21 @@
       return CreateMoveEventWithKey(window_, key, location, modifiers,
                                     input_vector);
     }
-    case ABS_Z:
+    case ABS_RX:
       input_vector.x = axis_value;
       input_vector.y = device_info->axis_value[ABS_RZ];
       key = kSbKeyGamepadRightStickLeft;
       location = kSbKeyLocationRight;
       return CreateMoveEventWithKey(window_, key, location, modifiers,
                                     input_vector);
-    case ABS_RZ:
+    case ABS_RY:
       input_vector.x = device_info->axis_value[ABS_Z];
       input_vector.y = axis_value;
       key = kSbKeyGamepadRightStickUp;
       location = kSbKeyLocationRight;
       return CreateMoveEventWithKey(window_, key, location, modifiers,
                                     input_vector);
-    case ABS_RX: {
+    case ABS_Z: {
       key = kSbKeyGamepadLeftTrigger;
       location = kSbKeyLocationLeft;
       // For trigger buttons, the range is [0..1].
@@ -1033,7 +1186,7 @@
                                         previous_trigger_value, key, location,
                                         modifiers, event);
     }
-    case ABS_RY: {
+    case ABS_RZ: {
       key = kSbKeyGamepadRightTrigger;
       location = kSbKeyLocationRight;
       // For trigger buttons, the range is [0..1].
@@ -1120,9 +1273,18 @@
 
 DevInput::Event* DevInputImpl::KeyInputToApplicationEvent(
     const struct input_event& event,
-    int modifiers) {
+    int modifiers,
+    InputDeviceInfo* device_info) {
   SB_DCHECK(event.type == EV_KEY);
   SB_DCHECK(event.value <= 2);
+
+  SbKey key = KeyCodeToSbKey(device_info->tuning
+                                 ? device_info->tuning->GetKeyCode(event.code)
+                                 : event.code);
+  if (key == kSbKeyUnknown) {
+    return NULL;
+  }
+
   SbInputData* data = new SbInputData();
   SbMemorySet(data, 0, sizeof(*data));
 #if SB_API_VERSION >= 10
@@ -1133,7 +1295,7 @@
       (event.value == 0 ? kSbInputEventTypeUnpress : kSbInputEventTypePress);
   data->device_type = kSbInputDeviceTypeKeyboard;
   data->device_id = kKeyboardDeviceId;
-  data->key = KeyCodeToSbKey(event.code);
+  data->key = key;
   data->key_location = KeyCodeToSbKeyLocation(event.code);
   data->key_modifiers = modifiers;
   return new Event(kSbEventTypeInput, data,
@@ -1142,15 +1304,15 @@
 
 DevInput::Event* DevInputImpl::InputToApplicationEvent(
     const struct input_event& event,
-    InputDeviceInfo* device_info,
-    int modifiers) {
+    int modifiers,
+    InputDeviceInfo* device_info) {
   // EV_ABS events are axis values: Sticks, dpad, and touchpad.
   // https://www.kernel.org/doc/Documentation/input/event-codes.txt
   switch (event.type) {
     case EV_ABS:
-      return AxisInputToApplicationEvent(event, device_info, modifiers);
+      return AxisInputToApplicationEvent(event, modifiers, device_info);
     case EV_KEY:
-      return KeyInputToApplicationEvent(event, modifiers);
+      return KeyInputToApplicationEvent(event, modifiers, device_info);
   }
   return NULL;
 }
diff --git a/src/starboard/shared/starboard/audio_sink/audio_sink_get_min_buffer_size_in_frames.cc b/src/starboard/shared/starboard/audio_sink/audio_sink_get_min_buffer_size_in_frames.cc
new file mode 100644
index 0000000..6bbaf73
--- /dev/null
+++ b/src/starboard/shared/starboard/audio_sink/audio_sink_get_min_buffer_size_in_frames.cc
@@ -0,0 +1,37 @@
+// Copyright 2019 The Cobalt Authors. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#include "starboard/audio_sink.h"
+
+#include "starboard/common/log.h"
+
+int SbAudioSinkGetMinBufferSizeInFrames(int channels,
+                                        SbMediaAudioSampleType sample_type,
+                                        int sampling_frequency_hz) {
+  if (channels <= 0 || channels > SbAudioSinkGetMaxChannels()) {
+    SB_LOG(ERROR) << "Not support channels count " << channels;
+    return -1;
+  }
+  if (sample_type != kSbMediaAudioSampleTypeInt16Deprecated &&
+      sample_type != kSbMediaAudioSampleTypeFloat32) {
+    SB_LOG(ERROR) << "Not support sample type " << sample_type;
+    return -1;
+  }
+  if (sampling_frequency_hz <= 0) {
+    SB_LOG(ERROR) << "Not support sample frequency " << sampling_frequency_hz;
+    return -1;
+  }
+
+  return 8 * 1024;
+}
diff --git a/src/starboard/shared/starboard/media/media_is_audio_supported_aac_and_opus.cc b/src/starboard/shared/starboard/media/media_is_audio_supported_aac_and_opus.cc
index 9772e30..e137651 100644
--- a/src/starboard/shared/starboard/media/media_is_audio_supported_aac_and_opus.cc
+++ b/src/starboard/shared/starboard/media/media_is_audio_supported_aac_and_opus.cc
@@ -23,11 +23,9 @@
     return bitrate <= SB_MEDIA_MAX_AUDIO_BITRATE_IN_BITS_PER_SECOND;
   }
 
-#if SB_HAS(AUDIO_SPECIFIC_CONFIG_AS_POINTER)
   if (audio_codec == kSbMediaAudioCodecOpus) {
     return bitrate <= SB_MEDIA_MAX_AUDIO_BITRATE_IN_BITS_PER_SECOND;
   }
-#endif  // SB_HAS(AUDIO_SPECIFIC_CONFIG_AS_POINTER)
 
   return false;
 }
diff --git a/src/starboard/shared/starboard/player/filter/audio_renderer_internal.cc b/src/starboard/shared/starboard/player/filter/audio_renderer_internal.cc
index 996f9aa..8d4695e 100644
--- a/src/starboard/shared/starboard/player/filter/audio_renderer_internal.cc
+++ b/src/starboard/shared/starboard/player/filter/audio_renderer_internal.cc
@@ -80,6 +80,10 @@
       process_audio_data_job_(
           std::bind(&AudioRenderer::ProcessAudioData, this)),
       audio_renderer_sink_(audio_renderer_sink.Pass()) {
+  SB_DLOG(INFO) << "Creating AudioRenderer with " << channels_ << " channels, "
+                << bytes_per_frame_ << " bytes per frame, "
+                << max_cached_frames_ << " max cached frames, and "
+                << max_frames_per_append_ << " max frames per append.";
   SB_DCHECK(decoder_ != NULL);
   SB_DCHECK(max_frames_per_append_ > 0);
   SB_DCHECK(max_cached_frames_ >= max_frames_per_append_ * 2);
@@ -93,6 +97,10 @@
 }
 
 AudioRenderer::~AudioRenderer() {
+  SB_DLOG(INFO) << "Destroying AudioRenderer with " << channels_
+                << " channels, " << bytes_per_frame_ << " bytes per frame, "
+                << max_cached_frames_ << " max cached frames, and "
+                << max_frames_per_append_ << " max frames per append.";
   SB_DCHECK(BelongsToCurrentThread());
 }
 
@@ -470,7 +478,8 @@
       total_frames_consumed_by_sink_ - silence_frames_consumed_on_sink_thread_);
   underflow_ |=
       frames_in_buffer_on_sink_thread_ < kFramesInBufferBeginUnderflow;
-  if (is_eos_reached_on_sink_thread_) {
+  if (is_eos_reached_on_sink_thread_ ||
+      frames_in_buffer_on_sink_thread_ >= buffered_frames_to_start_) {
     underflow_ = false;
   }
   is_playing_on_sink_thread_ = !paused_ && !seeking_ && !underflow_;
@@ -494,6 +503,9 @@
   time_stretcher_.Initialize(sink_sample_type_, channels_,
                              destination_sample_rate);
 
+  // Start play after have enough buffered frames to play 0.2s.
+  buffered_frames_to_start_ = destination_sample_rate * 0.2;
+
   SbMediaAudioSampleType source_sample_type = decoder_->GetSampleType();
   SbMediaAudioFrameStorageType source_storage_type = decoder_->GetStorageType();
 
@@ -656,7 +668,6 @@
       seeking_ = false;
       Schedule(prerolled_cb_);
     }
-    underflow_ = false;
   }
 
   if (seeking_ || playback_rate_ == 0.0) {
diff --git a/src/starboard/shared/starboard/player/filter/audio_renderer_internal.h b/src/starboard/shared/starboard/player/filter/audio_renderer_internal.h
index ef27230..43be250 100644
--- a/src/starboard/shared/starboard/player/filter/audio_renderer_internal.h
+++ b/src/starboard/shared/starboard/player/filter/audio_renderer_internal.h
@@ -104,6 +104,9 @@
 
   const int max_cached_frames_;
   const int max_frames_per_append_;
+  // |buffered_frames_to_start_| would be initialized in OnFirstOutput().
+  // Before it's initialized, set it to a large number.
+  int buffered_frames_to_start_ = 48 * 1024;
 
   ErrorCB error_cb_;
   PrerolledCB prerolled_cb_;
diff --git a/src/starboard/shared/starboard/player/filter/filter_based_player_worker_handler.cc b/src/starboard/shared/starboard/player/filter/filter_based_player_worker_handler.cc
index 1f2d675..6f5593e 100644
--- a/src/starboard/shared/starboard/player/filter/filter_based_player_worker_handler.cc
+++ b/src/starboard/shared/starboard/player/filter/filter_based_player_worker_handler.cc
@@ -65,7 +65,6 @@
   if (audio_codec != kSbMediaAudioCodecNone) {
     audio_sample_info_ = *audio_sample_info;
 
-#if SB_HAS(AUDIO_SPECIFIC_CONFIG_AS_POINTER)
     if (audio_sample_info_.audio_specific_config_size > 0) {
       audio_specific_config_.reset(
           new int8_t[audio_sample_info_.audio_specific_config_size]);
@@ -74,7 +73,6 @@
                    audio_sample_info->audio_specific_config_size);
       audio_sample_info_.audio_specific_config = audio_specific_config_.get();
     }
-#endif  // SB_HAS(AUDIO_SPECIFIC_CONFIG_AS_POINTER)
   }
 
   update_job_ = std::bind(&FilterBasedPlayerWorkerHandler::Update, this);
diff --git a/src/starboard/shared/starboard/player/filter/filter_based_player_worker_handler.h b/src/starboard/shared/starboard/player/filter/filter_based_player_worker_handler.h
index 3328ce6..e8c4d69 100644
--- a/src/starboard/shared/starboard/player/filter/filter_based_player_worker_handler.h
+++ b/src/starboard/shared/starboard/player/filter/filter_based_player_worker_handler.h
@@ -88,11 +88,9 @@
   SbMediaVideoCodec video_codec_;
   SbMediaAudioCodec audio_codec_;
   SbDrmSystem drm_system_;
-#if SB_HAS(AUDIO_SPECIFIC_CONFIG_AS_POINTER)
   // Store a copy of |SbMediaAudioSampleInfo::audio_specific_config| passed to
   // the ctor so it is valid for the life time of the player worker.
   scoped_array<int8_t> audio_specific_config_;
-#endif  // SB_HAS(AUDIO_SPECIFIC_CONFIG_AS_POINTER)
   SbMediaAudioSampleInfo audio_sample_info_;
 
   // |media_time_provider_impl_| is used to provide the media playback time when
diff --git a/src/starboard/shared/starboard/player/filter/testing/audio_decoder_test.cc b/src/starboard/shared/starboard/player/filter/testing/audio_decoder_test.cc
index 9b8e5ce..737c399 100644
--- a/src/starboard/shared/starboard/player/filter/testing/audio_decoder_test.cc
+++ b/src/starboard/shared/starboard/player/filter/testing/audio_decoder_test.cc
@@ -16,6 +16,7 @@
 
 #include <deque>
 #include <functional>
+#include <map>
 
 #include "starboard/common/condition_variable.h"
 #include "starboard/common/mutex.h"
@@ -147,7 +148,6 @@
       SbThreadSleep(kSbTimeMillisecond);
     }
     *event = kError;
-    FAIL();
   }
 
   // TODO: Add test to ensure that |consumed_cb| is not reused by the decoder.
@@ -165,8 +165,6 @@
 
     last_input_buffer_ = GetAudioInputBuffer(index);
 
-    outstanding_inputs_.insert(last_input_buffer_->timestamp());
-
     audio_decoder_->Decode(last_input_buffer_, consumed_cb());
   }
 
@@ -190,10 +188,15 @@
   }
 
   void WriteMultipleInputs(size_t start_index,
-                           size_t number_of_inputs_to_write) {
+                           size_t number_of_inputs_to_write,
+                           bool* error_occurred = NULL) {
     ASSERT_LE(start_index + number_of_inputs_to_write,
               dmp_reader_.number_of_audio_buffers());
 
+    if (error_occurred) {
+      *error_occurred = false;
+    }
+
     ASSERT_NO_FATAL_FAILURE(WriteSingleInput(start_index));
     ++start_index;
     --number_of_inputs_to_write;
@@ -207,6 +210,11 @@
         --number_of_inputs_to_write;
         continue;
       }
+      if (event == kError) {
+        ASSERT_TRUE(error_occurred);
+        *error_occurred = true;
+        return;
+      }
       ASSERT_EQ(kOutput, event);
       scoped_refptr<DecodedAudio> decoded_audio;
       ASSERT_NO_FATAL_FAILURE(ReadFromDecoder(&decoded_audio));
@@ -281,7 +289,6 @@
     can_accept_more_input_ = true;
     last_input_buffer_ = NULL;
     last_decoded_audio_ = NULL;
-    outstanding_inputs_.clear();
     eos_written_ = false;
   }
 
@@ -304,14 +311,27 @@
     auto player_sample_info =
         dmp_reader_.GetPlayerSampleInfo(kSbMediaTypeAudio, index);
 #if SB_API_VERSION >= 11
-    return new InputBuffer(DeallocateSampleFunc, NULL, NULL,
-                           player_sample_info);
+    auto input_buffer =
+        new InputBuffer(DeallocateSampleFunc, NULL, NULL, player_sample_info);
 #else   // SB_API_VERSION >= 11
     SbMediaAudioSampleInfo audio_sample_info =
         dmp_reader_.GetAudioSampleInfo(index);
-    return new InputBuffer(kSbMediaTypeAudio, DeallocateSampleFunc, NULL, NULL,
-                           player_sample_info, &audio_sample_info);
+    auto input_buffer =
+        new InputBuffer(kSbMediaTypeAudio, DeallocateSampleFunc, NULL, NULL,
+                        player_sample_info, &audio_sample_info);
 #endif  // SB_API_VERSION >= 11
+    auto iter = invalid_inputs_.find(index);
+    if (iter != invalid_inputs_.end()) {
+      std::vector<uint8_t> content(input_buffer->size(), iter->second);
+      // Replace the content with invalid data.
+      input_buffer->SetDecryptedContent(content.data(),
+                                        static_cast<int>(content.size()));
+    }
+    return input_buffer;
+  }
+
+  void UseInvalidDataForInput(size_t index, uint8_t byte_to_fill) {
+    invalid_inputs_[index] = byte_to_fill;
   }
 
   void WriteEndOfStream() {
@@ -355,11 +375,9 @@
   scoped_refptr<InputBuffer> last_input_buffer_;
   scoped_refptr<DecodedAudio> last_decoded_audio_;
 
-  // List of timestamps of InputBuffers provided to the Decoder so far, sorted
-  // in ascending order.
-  std::set<SbTime> outstanding_inputs_;
-
   bool eos_written_ = false;
+
+  std::map<size_t, uint8_t> invalid_inputs_;
 };
 
 TEST_P(AudioDecoderTest, ThreeMoreDecoders) {
@@ -414,24 +432,48 @@
 }
 
 TEST_P(AudioDecoderTest, SingleInvalidInput) {
-  can_accept_more_input_ = false;
-  last_input_buffer_ = GetAudioInputBuffer(0);
-  std::vector<uint8_t> content(last_input_buffer_->size(), 0xab);
-  // Replace the content with invalid data.
-  last_input_buffer_->SetDecryptedContent(content.data(),
-                                          static_cast<int>(content.size()));
-  audio_decoder_->Decode(last_input_buffer_, consumed_cb());
+  UseInvalidDataForInput(0, 0xab);
 
+  WriteSingleInput(0);
   WriteEndOfStream();
 
-  bool error_occurred = false;
+  bool error_occurred = true;
   ASSERT_NO_FATAL_FAILURE(DrainOutputs(&error_occurred));
-  // The decoder is allowed to either signal an error or return dummy audio
-  // data but not both.
-  if (error_occurred) {
-    ASSERT_FALSE(last_decoded_audio_);
-  } else {
-    ASSERT_TRUE(last_decoded_audio_);
+}
+
+TEST_P(AudioDecoderTest, MultipleValidInputsAfterInvalidInput) {
+  const size_t kMaxNumberOfInputToWrite = 10;
+  const size_t number_of_input_to_write =
+      std::min(kMaxNumberOfInputToWrite, dmp_reader_.number_of_audio_buffers());
+
+  UseInvalidDataForInput(0, 0xab);
+
+  bool error_occurred = true;
+  // Write first few frames.  The first one is invalid and the rest are valid.
+  WriteMultipleInputs(0, number_of_input_to_write, &error_occurred);
+
+  if (!error_occurred) {
+    WriteEndOfStream();
+    ASSERT_NO_FATAL_FAILURE(DrainOutputs(&error_occurred));
+  }
+}
+
+TEST_P(AudioDecoderTest, MultipleInvalidInput) {
+  const size_t kMaxNumberOfInputToWrite = 128;
+  const size_t number_of_input_to_write =
+      std::min(kMaxNumberOfInputToWrite, dmp_reader_.number_of_audio_buffers());
+  // Replace the content of the first few input buffers with invalid data.
+  // Every test instance loads its own copy of data so this won't affect other
+  // tests.
+  for (size_t i = 0; i < number_of_input_to_write; ++i) {
+    UseInvalidDataForInput(i, static_cast<uint8_t>(0xab + i));
+  }
+
+  bool error_occurred = true;
+  WriteMultipleInputs(0, number_of_input_to_write, &error_occurred);
+  if (!error_occurred) {
+    WriteEndOfStream();
+    ASSERT_NO_FATAL_FAILURE(DrainOutputs(&error_occurred));
   }
 }
 
diff --git a/src/starboard/shared/starboard/player/filter/testing/video_decoder_test.cc b/src/starboard/shared/starboard/player/filter/testing/video_decoder_test.cc
index c977332..e19d7b6 100644
--- a/src/starboard/shared/starboard/player/filter/testing/video_decoder_test.cc
+++ b/src/starboard/shared/starboard/player/filter/testing/video_decoder_test.cc
@@ -113,7 +113,8 @@
         output_mode_(std::get<0>(GetParam()).output_mode),
         using_stub_decoder_(std::get<1>(GetParam())),
         dmp_reader_(ResolveTestFileName(test_filename_).c_str()) {
-    SB_LOG(INFO) << "Testing " << test_filename_
+    SB_LOG(INFO) << "Testing " << test_filename_ << ", output mode "
+                 << output_mode_
                  << (using_stub_decoder_ ? " with stub video decoder." : ".");
   }
 
@@ -198,7 +199,8 @@
   enum Status {
     kNeedMoreInput = VideoDecoder::kNeedMoreInput,
     kBufferFull = VideoDecoder::kBufferFull,
-    kError
+    kError,
+    kTimeout
   };
 
   struct Event {
@@ -242,8 +244,7 @@
       }
       SbThreadSleep(kSbTimeMillisecond);
     }
-    event->status = kError;
-    FAIL();
+    event->status = kTimeout;
   }
 
   bool HasPendingEvents() {
@@ -314,7 +315,7 @@
         ASSERT_NO_FATAL_FAILURE(WriteSingleInput(start_index));
         ++start_index;
         --number_of_inputs_to_write;
-      } else if (event.status == kError) {
+      } else if (event.status == kError || event.status == kTimeout) {
         // Assume that the caller does't expect an error when |event_cb| isn't
         // provided.
         ASSERT_TRUE(event_cb);
@@ -356,7 +357,7 @@
     while (!end_of_stream_decoded) {
       Event event;
       ASSERT_NO_FATAL_FAILURE(WaitForNextEvent(&event));
-      if (event.status == kError) {
+      if (event.status == kError || event.status == kTimeout) {
         if (error_occurred) {
           *error_occurred = true;
         } else {
@@ -591,7 +592,10 @@
   ASSERT_NO_FATAL_FAILURE(DrainOutputs(
       &error_occurred, [=](const Event& event, bool* continue_process) {
         if (event.frame) {
-          AssertValidDecodeTargetWhenSupported();
+          // TODO: On some platforms, decode texture will be ready only after
+          // rendered by renderer, so decode target is not always available
+          // at this point. We should provide a mock renderer and then check
+          // the decode target here with AssertValidDecodeTargetWhenSupported().
         }
         *continue_process = true;
       }));
@@ -619,19 +623,23 @@
   UseInvalidDataForInput(0, 0xab);
 
   bool error_occurred = false;
-
+  bool timeout_occurred = false;
   // Write first few frames.  The first one is invalid and the rest are valid.
   WriteMultipleInputs(0, number_of_input_to_write,
                       [&](const Event& event, bool* continue_process) {
+                        if (event.status == kTimeout) {
+                          timeout_occurred = true;
+                          *continue_process = false;
+                          return;
+                        }
                         if (event.status == kError) {
                           error_occurred = true;
                           *continue_process = false;
                           return;
                         }
-
                         *continue_process = event.status != kBufferFull;
                       });
-
+  ASSERT_FALSE(timeout_occurred);
   if (!error_occurred) {
     GetDecodeTargetWhenSupported();
     WriteEndOfStream();
@@ -654,8 +662,14 @@
   }
 
   bool error_occurred = false;
+  bool timeout_occurred = false;
   WriteMultipleInputs(0, number_of_input_to_write,
                       [&](const Event& event, bool* continue_process) {
+                        if (event.status == kTimeout) {
+                          timeout_occurred = true;
+                          *continue_process = false;
+                          return;
+                        }
                         if (event.status == kError) {
                           error_occurred = true;
                           *continue_process = false;
@@ -664,7 +678,7 @@
 
                         *continue_process = event.status != kBufferFull;
                       });
-
+  ASSERT_FALSE(timeout_occurred);
   if (!error_occurred) {
     GetDecodeTargetWhenSupported();
     WriteEndOfStream();
@@ -692,21 +706,34 @@
 
 TEST_P(VideoDecoderTest, ResetAfterInput) {
   const size_t kMaxInputToWrite = 10;
-  WriteMultipleInputs(0, kMaxInputToWrite,
-                      [](const Event& event, bool* continue_process) {
-                        *continue_process = event.status != kBufferFull;
-                      });
-
+  bool error_occurred = false;
+  WriteMultipleInputs(
+      0, kMaxInputToWrite, [&](const Event& event, bool* continue_process) {
+        if (event.status == kTimeout || event.status == kError) {
+          error_occurred = true;
+          *continue_process = false;
+          return;
+        }
+        *continue_process = event.status != kBufferFull;
+      });
+  ASSERT_FALSE(error_occurred);
   ResetDecoderAndClearPendingEvents();
   EXPECT_FALSE(HasPendingEvents());
 }
 
 TEST_P(VideoDecoderTest, MultipleResets) {
   for (int max_inputs = 1; max_inputs < 10; ++max_inputs) {
-    WriteMultipleInputs(0, max_inputs,
-                        [](const Event& event, bool* continue_process) {
-                          *continue_process = event.status != kBufferFull;
-                        });
+    bool error_occurred = false;
+    WriteMultipleInputs(
+        0, max_inputs, [&](const Event& event, bool* continue_process) {
+          if (event.status == kTimeout || event.status == kError) {
+            error_occurred = true;
+            *continue_process = false;
+            return;
+          }
+          *continue_process = event.status != kBufferFull;
+        });
+    ASSERT_FALSE(error_occurred);
     ResetDecoderAndClearPendingEvents();
     EXPECT_FALSE(HasPendingEvents());
     WriteSingleInput(0);
@@ -722,14 +749,20 @@
   const size_t number_of_expected_decoded_frames = std::min(
       kMaxNumberOfExpectedDecodedFrames, dmp_reader_.number_of_video_buffers());
   size_t frames_decoded = 0;
+  bool error_occurred = false;
   ASSERT_NO_FATAL_FAILURE(WriteMultipleInputs(
       0, dmp_reader_.number_of_video_buffers(),
       [&](const Event& event, bool* continue_process) {
-        SB_UNREFERENCED_PARAMETER(event);
+        if (event.status == kTimeout || event.status == kError) {
+          error_occurred = true;
+          *continue_process = false;
+          return;
+        }
         frames_decoded += decoded_frames_.size();
         decoded_frames_.clear();
         *continue_process = frames_decoded < number_of_expected_decoded_frames;
       }));
+  ASSERT_FALSE(error_occurred);
   if (frames_decoded < number_of_expected_decoded_frames) {
     WriteEndOfStream();
     ASSERT_NO_FATAL_FAILURE(DrainOutputs());
@@ -739,39 +772,51 @@
 TEST_P(VideoDecoderTest, Preroll) {
   SbTimeMonotonic start = SbTimeGetMonotonicNow();
   SbTime preroll_timeout = video_decoder_->GetPrerollTimeout();
+  bool error_occurred = false;
   ASSERT_NO_FATAL_FAILURE(WriteMultipleInputs(
       0, dmp_reader_.number_of_video_buffers(),
-      [=](const Event& event, bool* continue_process) {
-        SB_UNREFERENCED_PARAMETER(event);
+      [&](const Event& event, bool* continue_process) {
+        if (event.status == kError) {
+          error_occurred = true;
+          *continue_process = false;
+          return;
+        }
         if (decoded_frames_.size() >= video_decoder_->GetPrerollFrameCount()) {
           *continue_process = false;
           return;
         }
         if (SbTimeGetMonotonicNow() - start >= preroll_timeout) {
+          // After preroll timeout, we should get at least 1 decoded frame.
+          ASSERT_GT(decoded_frames_.size(), 0);
           *continue_process = false;
           return;
         }
         *continue_process = true;
         return;
       }));
+  ASSERT_FALSE(error_occurred);
 }
 
 TEST_P(VideoDecoderTest, HoldFramesUntilFull) {
+  bool error_occurred = false;
   ASSERT_NO_FATAL_FAILURE(WriteMultipleInputs(
       0, dmp_reader_.number_of_video_buffers(),
-      [=](const Event& event, bool* continue_process) {
-        SB_UNREFERENCED_PARAMETER(event);
+      [&](const Event& event, bool* continue_process) {
+        if (event.status == kTimeout || event.status == kError) {
+          error_occurred = true;
+          *continue_process = false;
+          return;
+        }
         *continue_process = decoded_frames_.size() <
                             video_decoder_->GetMaxNumberOfCachedFrames();
       }));
+  ASSERT_FALSE(error_occurred);
   WriteEndOfStream();
   if (decoded_frames_.size() >= video_decoder_->GetMaxNumberOfCachedFrames()) {
     return;
   }
-  bool error_occurred = false;
   ASSERT_NO_FATAL_FAILURE(DrainOutputs(
       &error_occurred, [=](const Event& event, bool* continue_process) {
-        SB_UNREFERENCED_PARAMETER(event);
         *continue_process = decoded_frames_.size() <
                             video_decoder_->GetMaxNumberOfCachedFrames();
       }));
@@ -786,24 +831,27 @@
     }
     ++gop_size;
   }
-
+  bool error_occurred = false;
   ASSERT_NO_FATAL_FAILURE(WriteMultipleInputs(
-      0, gop_size, [=](const Event& event, bool* continue_process) {
-        SB_UNREFERENCED_PARAMETER(event);
-        while (decoded_frames_.size() >=
-               video_decoder_->GetPrerollFrameCount()) {
+      0, gop_size, [&](const Event& event, bool* continue_process) {
+        if (event.status == kTimeout || event.status == kError) {
+          error_occurred = true;
+          *continue_process = false;
+          return;
+        }
+        // Keep 1 decoded frame, assuming it's used by renderer.
+        while (decoded_frames_.size() > 1) {
           decoded_frames_.pop_front();
         }
         *continue_process = true;
       }));
+  ASSERT_FALSE(error_occurred);
   WriteEndOfStream();
 
-  bool error_occurred = true;
   ASSERT_NO_FATAL_FAILURE(DrainOutputs(
       &error_occurred, [=](const Event& event, bool* continue_process) {
-        SB_UNREFERENCED_PARAMETER(event);
-        while (decoded_frames_.size() >=
-               video_decoder_->GetMaxNumberOfCachedFrames()) {
+        // Keep 1 decoded frame, assuming it's used by renderer.
+        while (decoded_frames_.size() > 1) {
           decoded_frames_.pop_front();
         }
         *continue_process = true;
diff --git a/src/starboard/shared/starboard/player/filter/video_render_algorithm_impl.cc b/src/starboard/shared/starboard/player/filter/video_render_algorithm_impl.cc
index a5f7002..afa527c 100644
--- a/src/starboard/shared/starboard/player/filter/video_render_algorithm_impl.cc
+++ b/src/starboard/shared/starboard/player/filter/video_render_algorithm_impl.cc
@@ -90,13 +90,13 @@
     if (frames->front()->timestamp() != last_frame_timestamp_) {
 #if SB_PLAYER_FILTER_ENABLE_STATE_CHECK
       auto now = SbTimeGetMonotonicNow();
-      SB_LOG(ERROR) << "Dropping frame @ " << frames->front()->timestamp()
-                    << " microseconds, the elasped media time/system time from"
-                    << " last Render() call are "
-                    << media_time - media_time_of_last_render_call_ << "/"
-                    << now - system_time_of_last_render_call_
-                    << " microseconds, with " << frames->size()
-                    << " frames in the backlog.";
+      SB_LOG(WARNING)
+          << "Dropping frame @ " << frames->front()->timestamp()
+          << " microseconds, the elasped media time/system time from"
+          << " last Render() call are "
+          << media_time - media_time_of_last_render_call_ << "/"
+          << now - system_time_of_last_render_call_ << " microseconds, with "
+          << frames->size() << " frames in the backlog.";
 #endif  // SB_PLAYER_FILTER_ENABLE_STATE_CHECK
       ++dropped_frames_;
     }
diff --git a/src/starboard/shared/starboard/player/input_buffer_internal.cc b/src/starboard/shared/starboard/player/input_buffer_internal.cc
index 48d7ed4..c757c6d 100644
--- a/src/starboard/shared/starboard/player/input_buffer_internal.cc
+++ b/src/starboard/shared/starboard/player/input_buffer_internal.cc
@@ -100,8 +100,9 @@
   DeallocateSampleBuffer(data_);
 
   if (size > 0) {
-    flattened_data_.resize(size);
-    SbMemoryCopy(flattened_data_.data(), buffer, size);
+    flattened_data_.clear();
+    flattened_data_.assign(static_cast<const uint8_t*>(buffer),
+                           static_cast<const uint8_t*>(buffer) + size);
     data_ = flattened_data_.data();
   } else {
     data_ = NULL;
diff --git a/src/starboard/shared/starboard/player/player_internal.cc b/src/starboard/shared/starboard/player/player_internal.cc
index ebbba98..7312db7 100644
--- a/src/starboard/shared/starboard/player/player_internal.cc
+++ b/src/starboard/shared/starboard/player/player_internal.cc
@@ -71,6 +71,8 @@
       this, context));
 
   ++number_of_players_;
+  SB_DLOG(INFO) << "Creating SbPlayerPrivate. There are " << number_of_players_
+                << " players.";
 }
 
 // static
diff --git a/src/starboard/shared/starboard/player/player_internal.h b/src/starboard/shared/starboard/player/player_internal.h
index e6e713e..9cadbb7 100644
--- a/src/starboard/shared/starboard/player/player_internal.h
+++ b/src/starboard/shared/starboard/player/player_internal.h
@@ -62,7 +62,11 @@
 
   SbDecodeTarget GetCurrentDecodeTarget();
 
-  ~SbPlayerPrivate() { --number_of_players_; }
+  ~SbPlayerPrivate() {
+    --number_of_players_;
+    SB_DLOG(INFO) << "Destroying SbPlayerPrivate. There are "
+                  << number_of_players_ << " players.";
+  }
 
   static int number_of_players() { return number_of_players_; }
 
diff --git a/src/starboard/shared/starboard/player/video_dmp_common.cc b/src/starboard/shared/starboard/player/video_dmp_common.cc
index 2770b9b..1a97ed8 100644
--- a/src/starboard/shared/starboard/player/video_dmp_common.cc
+++ b/src/starboard/shared/starboard/player/video_dmp_common.cc
@@ -108,16 +108,8 @@
        &audio_sample_info->audio_specific_config_size);
   audio_sample_info->stored_audio_specific_config.resize(
       audio_sample_info->audio_specific_config_size);
-#if SB_HAS(AUDIO_SPECIFIC_CONFIG_AS_POINTER)
   audio_sample_info->audio_specific_config =
       audio_sample_info->stored_audio_specific_config.data();
-#else   // SB_HAS(AUDIO_SPECIFIC_CONFIG_AS_POINTER)
-  SB_DCHECK(sizeof(audio_sample_info->audio_specific_config) >=
-            audio_sample_info->stored_audio_specific_config.size());
-  SbMemoryCopy(audio_sample_info->audio_specific_config,
-               audio_sample_info->stored_audio_specific_config.data(),
-               audio_sample_info->stored_audio_specific_config.size());
-#endif  // SB_HAS(AUDIO_SPECIFIC_CONFIG_AS_POINTER)
   Read(read_cb, audio_sample_info->stored_audio_specific_config.data(),
        audio_sample_info->audio_specific_config_size);
 }
diff --git a/src/starboard/shared/starboard/player/video_dmp_common.h b/src/starboard/shared/starboard/player/video_dmp_common.h
index a6a8d44..5625142 100644
--- a/src/starboard/shared/starboard/player/video_dmp_common.h
+++ b/src/starboard/shared/starboard/player/video_dmp_common.h
@@ -76,13 +76,7 @@
   SbMediaAudioSampleInfoWithConfig(const SbMediaAudioSampleInfoWithConfig& that)
       : SbMediaAudioSampleInfo(that),
         stored_audio_specific_config(that.stored_audio_specific_config) {
-#if SB_HAS(AUDIO_SPECIFIC_CONFIG_AS_POINTER)
     audio_specific_config = stored_audio_specific_config.data();
-#else   // SB_HAS(AUDIO_SPECIFIC_CONFIG_AS_POINTER)
-    SB_DCHECK(8 >= stored_audio_specific_config.size());
-    SbMemoryCopy(audio_specific_config, stored_audio_specific_config.data(),
-                 stored_audio_specific_config.size());
-#endif  // SB_HAS(AUDIO_SPECIFIC_CONFIG_AS_POINTER)
   }
   void operator=(const SbMediaAudioSampleInfoWithConfig& that) = delete;
 
diff --git a/src/cobalt/dom/c_val_key_list.idl b/src/starboard/shared/stub/audio_sink_get_min_buffer_size_in_frames.cc
similarity index 62%
rename from src/cobalt/dom/c_val_key_list.idl
rename to src/starboard/shared/stub/audio_sink_get_min_buffer_size_in_frames.cc
index ffe9013..f64f8ec 100644
--- a/src/cobalt/dom/c_val_key_list.idl
+++ b/src/starboard/shared/stub/audio_sink_get_min_buffer_size_in_frames.cc
@@ -1,4 +1,4 @@
-// Copyright 2016 The Cobalt Authors. All Rights Reserved.
+// Copyright 2019 The Cobalt Authors. All Rights Reserved.
 //
 // Licensed under the Apache License, Version 2.0 (the "License");
 // you may not use this file except in compliance with the License.
@@ -12,9 +12,10 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-[ArrayClass]
-interface CValKeyList {
-  getter DOMString? item(unsigned long index);
-  readonly attribute unsigned long length;
-  long indexOf(DOMString key);
-};
+#include "starboard/audio_sink.h"
+
+int SbAudioSinkGetMinBufferSizeInFrames(int /*channels*/,
+                                        SbMediaAudioSampleType /*sample_type*/,
+                                        int /*sampling_frequency_hz*/) {
+  return 8 * 1024;
+}
diff --git a/src/starboard/shared/stub/drm_create_system.cc b/src/starboard/shared/stub/drm_create_system.cc
index b384a3f..5d8628f 100644
--- a/src/starboard/shared/stub/drm_create_system.cc
+++ b/src/starboard/shared/stub/drm_create_system.cc
@@ -52,7 +52,7 @@
   return kSbDrmSystemInvalid;
 }
 
-#elif SB_HAS(DRM_KEY_STATUSES)
+#else  // SB_HAS(DRM_SESSION_CLOSED)
 
 SbDrmSystem SbDrmCreateSystem(
     const char* key_system,
@@ -68,18 +68,4 @@
   return kSbDrmSystemInvalid;
 }
 
-#else  // SB_API_VERSION >= 10
-
-SbDrmSystem SbDrmCreateSystem(
-    const char* key_system,
-    void* context,
-    SbDrmSessionUpdateRequestFunc update_request_callback,
-    SbDrmSessionUpdatedFunc session_updated_callback) {
-  SB_UNREFERENCED_PARAMETER(context);
-  SB_UNREFERENCED_PARAMETER(key_system);
-  SB_UNREFERENCED_PARAMETER(update_request_callback);
-  SB_UNREFERENCED_PARAMETER(session_updated_callback);
-  return kSbDrmSystemInvalid;
-}
-
-#endif  // SB_API_VERSION >= 10
+#endif  // SB_HAS(DRM_SESSION_CLOSED)
diff --git a/src/starboard/shared/stub/image_decode.cc b/src/starboard/shared/stub/image_decode.cc
index 42369db..e3a2043 100644
--- a/src/starboard/shared/stub/image_decode.cc
+++ b/src/starboard/shared/stub/image_decode.cc
@@ -15,10 +15,6 @@
 #include "starboard/configuration.h"
 #include "starboard/image.h"
 
-#if !SB_HAS(GRAPHICS)
-#error "SbImageDecode requires SB_HAS(GRAPHICS)."
-#endif
-
 SbDecodeTarget SbImageDecode(SbDecodeTargetGraphicsContextProvider* provider,
                              void* data,
                              int data_size,
diff --git a/src/starboard/shared/stub/image_is_decode_supported.cc b/src/starboard/shared/stub/image_is_decode_supported.cc
index 984a139..9e04d60 100644
--- a/src/starboard/shared/stub/image_is_decode_supported.cc
+++ b/src/starboard/shared/stub/image_is_decode_supported.cc
@@ -15,10 +15,6 @@
 #include "starboard/configuration.h"
 #include "starboard/image.h"
 
-#if !SB_HAS(GRAPHICS)
-#error "Requires SB_HAS(GRAPHICS)."
-#endif
-
 bool SbImageIsDecodeSupported(const char* mime_type,
                               SbDecodeTargetFormat format) {
   SB_UNREFERENCED_PARAMETER(mime_type);
diff --git a/src/starboard/shared/stub/system_sign_with_certification_secret_key.cc b/src/starboard/shared/stub/system_sign_with_certification_secret_key.cc
new file mode 100644
index 0000000..b64bb21
--- /dev/null
+++ b/src/starboard/shared/stub/system_sign_with_certification_secret_key.cc
@@ -0,0 +1,26 @@
+// Copyright 2019 The Cobalt Authors. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#include "starboard/system.h"
+
+#if SB_API_VERSION >= 11
+
+bool SbSystemSignWithCertificationSecretKey(const uint8_t* message,
+                                            size_t message_size_in_bytes,
+                                            uint8_t* digest,
+                                            size_t digest_size_in_bytes) {
+  return false;
+}
+
+#endif  // SB_API_VERSION >= 11
diff --git a/src/starboard/shared/widevine/drm_create_system.cc b/src/starboard/shared/widevine/drm_create_system.cc
index 544fb79..595cf4d 100644
--- a/src/starboard/shared/widevine/drm_create_system.cc
+++ b/src/starboard/shared/widevine/drm_create_system.cc
@@ -30,11 +30,8 @@
     const char* key_system,
     void* context,
     SbDrmSessionUpdateRequestFunc update_request_callback,
-    SbDrmSessionUpdatedFunc session_updated_callback
-#if SB_HAS(DRM_KEY_STATUSES)
-    ,
+    SbDrmSessionUpdatedFunc session_updated_callback,
     SbDrmSessionKeyStatusesChangedFunc key_statuses_changed_callback
-#endif  // SB_HAS(DRM_KEY_STATUSES)
 #if SB_API_VERSION >= 10
     ,
     SbDrmServerCertificateUpdatedFunc server_certificate_updated_callback,
@@ -45,11 +42,9 @@
   if (!update_request_callback || !session_updated_callback) {
     return kSbDrmSystemInvalid;
   }
-#if SB_HAS(DRM_KEY_STATUSES)
   if (!key_statuses_changed_callback) {
     return kSbDrmSystemInvalid;
   }
-#endif  // SB_HAS(DRM_KEY_STATUSES)
 #if SB_API_VERSION >= 10
   if (!server_certificate_updated_callback || !session_closed_callback) {
     return kSbDrmSystemInvalid;
@@ -63,10 +58,8 @@
                 << "premium content playback resolution may be limited.";
   return new DrmSystemWidevine(context, update_request_callback,
                                session_updated_callback
-#if SB_HAS(DRM_KEY_STATUSES)
                                ,
                                key_statuses_changed_callback
-#endif  // SB_HAS(DRM_KEY_STATUSES)
 #if SB_API_VERSION >= 10
                                ,
                                server_certificate_updated_callback
diff --git a/src/starboard/shared/widevine/drm_system_widevine.cc b/src/starboard/shared/widevine/drm_system_widevine.cc
index 8d6ff57..e884249 100644
--- a/src/starboard/shared/widevine/drm_system_widevine.cc
+++ b/src/starboard/shared/widevine/drm_system_widevine.cc
@@ -41,6 +41,11 @@
 const char* kWidevineKeySystem[] = {"com.widevine", "com.widevine.alpha"};
 const char kWidevineStorageFileName[] = "wvcdm.dat";
 
+// Key usage may be blocked due to incomplete HDCP authentication which could
+// take up to 5 seconds. For such a case it is good to give a try few times to
+// get HDCP authentication complete. We set a timeout of 6 seconds for retries.
+const SbTimeMonotonic kUnblockKeyRetryTimeout = kSbTimeSecond * 6;
+
 class WidevineClock : public wv3cdm::IClock {
  public:
   int64_t now() override {
@@ -193,11 +198,8 @@
 DrmSystemWidevine::DrmSystemWidevine(
     void* context,
     SbDrmSessionUpdateRequestFunc session_update_request_callback,
-    SbDrmSessionUpdatedFunc session_updated_callback
-#if SB_HAS(DRM_KEY_STATUSES)
-    ,
+    SbDrmSessionUpdatedFunc session_updated_callback,
     SbDrmSessionKeyStatusesChangedFunc key_statuses_changed_callback
-#endif  // SB_HAS(DRM_KEY_STATUSES)
 #if SB_API_VERSION >= 10
     ,
     SbDrmServerCertificateUpdatedFunc server_certificate_updated_callback
@@ -212,9 +214,7 @@
     : context_(context),
       session_update_request_callback_(session_update_request_callback),
       session_updated_callback_(session_updated_callback),
-#if SB_HAS(DRM_KEY_STATUSES)
       key_statuses_changed_callback_(key_statuses_changed_callback),
-#endif  // SB_HAS(DRM_KEY_STATUSES)
 #if SB_API_VERSION >= 10
       server_certificate_updated_callback_(server_certificate_updated_callback),
 #endif  // SB_API_VERSION >= 10
@@ -320,6 +320,7 @@
         sb_drm_session_id, sb_drm_session_id_size, &wvcdm_session_id);
     SB_DCHECK(succeeded);
     status = cdm_->update(wvcdm_session_id, str_key);
+    first_update_session_received_.store(true);
   }
   SB_DLOG(INFO) << "Update keys status " << status;
 #if SB_API_VERSION >= 10
@@ -395,6 +396,10 @@
     return kSuccess;
   }
 
+  if (!first_update_session_received_.load()) {
+    return kRetry;
+  }
+
   // Adapt |buffer| and |drm_info| to a |cdm::InputBuffer|.
   SB_DCHECK(drm_info->initialization_vector_size == kInitializationVectorSize);
   std::vector<uint8_t> initialization_vector(
@@ -459,6 +464,18 @@
           SB_DLOG(ERROR) << "Decrypt status: kNoKey";
           return kRetry;
         }
+        if (status == wv3cdm::kKeyUsageBlockedByPolicy) {
+          {
+            ScopedLock lock(unblock_key_retry_mutex_);
+            if (!unblock_key_retry_start_time_) {
+              unblock_key_retry_start_time_ = SbTimeGetMonotonicNow();
+            }
+          }
+          if (SbTimeGetMonotonicNow() - unblock_key_retry_start_time_.value() <
+              kUnblockKeyRetryTimeout) {
+            return kRetry;
+          }
+        }
         SB_DLOG(ERROR) << "Decrypt status " << status;
         SB_DLOG(ERROR) << "Key ID "
                        << wvcdm::b2a_hex(
@@ -467,7 +484,10 @@
                                           drm_info->identifier_size));
         return kFailure;
       }
-
+      {
+        ScopedLock lock(unblock_key_retry_mutex_);
+        unblock_key_retry_start_time_ = nullopt;
+      }
       input.data += subsample.encrypted_byte_count;
       output.data += subsample.encrypted_byte_count;
       output.data_length -= subsample.encrypted_byte_count;
@@ -582,7 +602,6 @@
 
 void DrmSystemWidevine::onKeyStatusesChange(
     const std::string& wvcdm_session_id) {
-#if SB_HAS(DRM_KEY_STATUSES)
   wv3cdm::KeyStatusMap key_statuses;
   wv3cdm::Status status = cdm_->getKeyStatuses(wvcdm_session_id, &key_statuses);
 
@@ -608,9 +627,6 @@
   key_statuses_changed_callback_(this, context_, sb_drm_session_id.c_str(),
                                  sb_drm_session_id.size(), sb_key_ids.size(),
                                  sb_key_ids.data(), sb_key_statuses.data());
-#else   // SB_HAS(DRM_KEY_STATUSES)
-  SB_UNREFERENCED_PARAMETER(wvcdm_session_id);
-#endif  // SB_HAS(DRM_KEY_STATUSES)
 }
 
 void DrmSystemWidevine::onRemoveComplete(const std::string& wvcdm_session_id) {
diff --git a/src/starboard/shared/widevine/drm_system_widevine.h b/src/starboard/shared/widevine/drm_system_widevine.h
index c8e9d22..fb7bce7 100644
--- a/src/starboard/shared/widevine/drm_system_widevine.h
+++ b/src/starboard/shared/widevine/drm_system_widevine.h
@@ -20,7 +20,10 @@
 #include <string>
 #include <vector>
 
+#include "starboard/atomic.h"
+#include "starboard/common/optional.h"
 #include "starboard/common/scoped_ptr.h"
+#include "starboard/mutex.h"
 #include "starboard/shared/starboard/drm/drm_system_internal.h"
 #include "starboard/shared/starboard/thread_checker.h"
 #include "starboard/thread.h"
@@ -41,11 +44,8 @@
   DrmSystemWidevine(
       void* context,
       SbDrmSessionUpdateRequestFunc update_request_callback,
-      SbDrmSessionUpdatedFunc session_updated_callback
-#if SB_HAS(DRM_KEY_STATUSES)
-      ,
+      SbDrmSessionUpdatedFunc session_updated_callback,
       SbDrmSessionKeyStatusesChangedFunc key_statuses_changed_callback
-#endif  // SB_HAS(DRM_KEY_STATUSES)
 #if SB_API_VERSION >= 10
       ,
       SbDrmServerCertificateUpdatedFunc server_certificate_updated_callback
@@ -163,9 +163,7 @@
   void* const context_;
   const SbDrmSessionUpdateRequestFunc session_update_request_callback_;
   const SbDrmSessionUpdatedFunc session_updated_callback_;
-#if SB_HAS(DRM_KEY_STATUSES)
   const SbDrmSessionKeyStatusesChangedFunc key_statuses_changed_callback_;
-#endif  // SB_HAS(DRM_KEY_STATUSES)
 #if SB_API_VERSION >= 10
   const SbDrmServerCertificateUpdatedFunc server_certificate_updated_callback_;
 #endif  // SB_API_VERSION >= 10
@@ -204,10 +202,15 @@
 
   volatile bool quitting_ = false;
 
+  Mutex unblock_key_retry_mutex_;
+  optional<SbTimeMonotonic> unblock_key_retry_start_time_;
+
 #if !defined(COBALT_BUILD_TYPE_GOLD)
   int number_of_session_updates_sent_ = 0;
   int maximum_number_of_session_updates_ = std::numeric_limits<int>::max();
 #endif  // !defined(COBALT_BUILD_TYPE_GOLD)
+
+  atomic_bool first_update_session_received_{false};
 };
 
 }  // namespace widevine
diff --git a/src/starboard/stub/stub_sources.gypi b/src/starboard/stub/stub_sources.gypi
index 27da555..8a9cffb 100644
--- a/src/starboard/stub/stub_sources.gypi
+++ b/src/starboard/stub/stub_sources.gypi
@@ -31,6 +31,7 @@
         '<(DEPTH)/starboard/shared/stub/audio_sink_create.cc',
         '<(DEPTH)/starboard/shared/stub/audio_sink_destroy.cc',
         '<(DEPTH)/starboard/shared/stub/audio_sink_get_max_channels.cc',
+        '<(DEPTH)/starboard/shared/stub/audio_sink_get_min_buffer_size_in_frames.cc',
         '<(DEPTH)/starboard/shared/stub/audio_sink_get_nearest_supported_sample_frequency.cc',
         '<(DEPTH)/starboard/shared/stub/audio_sink_is_audio_frame_storage_type_supported.cc',
         '<(DEPTH)/starboard/shared/stub/audio_sink_is_audio_sample_type_supported.cc',
@@ -56,6 +57,8 @@
         '<(DEPTH)/starboard/shared/stub/cryptography_set_authenticated_data.cc',
         '<(DEPTH)/starboard/shared/stub/cryptography_set_initialization_vector.cc',
         '<(DEPTH)/starboard/shared/stub/cryptography_transform.cc',
+        '<(DEPTH)/starboard/shared/stub/decode_target_get_info.cc',
+        '<(DEPTH)/starboard/shared/stub/decode_target_release.cc',
         '<(DEPTH)/starboard/shared/stub/directory_can_open.cc',
         '<(DEPTH)/starboard/shared/stub/directory_close.cc',
         '<(DEPTH)/starboard/shared/stub/directory_create.cc',
@@ -74,6 +77,8 @@
         '<(DEPTH)/starboard/shared/stub/drm_system_internal.h',
         '<(DEPTH)/starboard/shared/stub/drm_update_server_certificate.cc',
         '<(DEPTH)/starboard/shared/stub/drm_update_session.cc',
+        '<(DEPTH)/starboard/shared/stub/image_decode.cc',
+        '<(DEPTH)/starboard/shared/stub/image_is_decode_supported.cc',
         '<(DEPTH)/starboard/shared/stub/file_can_open.cc',
         '<(DEPTH)/starboard/shared/stub/file_close.cc',
         '<(DEPTH)/starboard/shared/stub/file_delete.cc',
@@ -253,6 +258,7 @@
         '<(DEPTH)/starboard/shared/stub/system_request_stop.cc',
         '<(DEPTH)/starboard/shared/stub/system_request_suspend.cc',
         '<(DEPTH)/starboard/shared/stub/system_request_unpause.cc',
+        '<(DEPTH)/starboard/shared/stub/system_sign_with_certification_secret_key.cc',
         '<(DEPTH)/starboard/shared/stub/system_sort.cc',
         '<(DEPTH)/starboard/shared/stub/system_supports_resume.cc',
         '<(DEPTH)/starboard/shared/stub/system_symbolize.cc',
diff --git a/src/starboard/system.h b/src/starboard/system.h
index 0012d64..1f41f54 100644
--- a/src/starboard/system.h
+++ b/src/starboard/system.h
@@ -618,6 +618,24 @@
 SB_EXPORT const void* SbSystemGetExtension(const char* name);
 #endif  // SB_API_VERSION >= 11
 
+#if SB_API_VERSION >= 11
+// Computes a HMAC-SHA256 digest of |message| into |digest| using the
+// application's certification secret.
+//
+// This function may be implemented as an alternative to implementing
+// SbSystemGetProperty(kSbSystemPropertyBase64EncodedCertificationSecret),
+// however both should not be implemented.
+//
+// The output will be written into |digest|.  |digest_size_in_bytes| must be 32
+// (or greater), since 32-bytes will be written into it.
+// Returns false in the case of an error, or if it is not implemented.  In this
+// case the contents of |digest| will be undefined.
+bool SbSystemSignWithCertificationSecretKey(const uint8_t* message,
+                                            size_t message_size_in_bytes,
+                                            uint8_t* digest,
+                                            size_t digest_size_in_bytes);
+#endif
+
 #ifdef __cplusplus
 }  // extern "C"
 #endif
diff --git a/src/starboard/tools/app_launcher_packager.py b/src/starboard/tools/app_launcher_packager.py
index 092b387..4991c6a 100644
--- a/src/starboard/tools/app_launcher_packager.py
+++ b/src/starboard/tools/app_launcher_packager.py
@@ -66,6 +66,8 @@
 from paths import REPOSITORY_ROOT
 from paths import THIRD_PARTY_ROOT
 sys.path.append(THIRD_PARTY_ROOT)
+from cobalt.build import cobalt_archive_extract
+import starboard.build.port_symlink as port_symlink
 import starboard.tools.platform
 import jinja2
 
@@ -168,10 +170,18 @@
 
 def _CopyAppLauncherTools(repo_root, dest_root, additional_glob_patterns,
                           include_black_box_tests):
-  # Step 1: Remove previous output directory if it exists
+  # Step 1: Make sure dest_root is an absolute path.
+  logging.info('Copying App Launcher tools to = %s', dest_root)
+  dest_root = os.path.normpath(dest_root)
+  if not os.path.isabs(dest_root):
+    dest_root = os.path.join(os.getcwd(), dest_root)
+  if port_symlink.IsWindows():
+    dest_root = cobalt_archive_extract.ToWinUncPath(dest_root)
+  logging.info('Absolute destination path = %s', dest_root)
+  # Step 2: Remove previous output directory if it exists
   if os.path.isdir(dest_root):
     shutil.rmtree(dest_root)
-  # Step 2: Find all glob files from specified search directories.
+  # Step 3: Find all glob files from specified search directories.
   include_glob_patterns = _INCLUDE_FILE_PATTERNS
   if additional_glob_patterns:
     include_glob_patterns += additional_glob_patterns
@@ -190,7 +200,7 @@
   copy_list = list(set(copy_list))
   copy_list.sort()
   folders_logged = set()
-  # Step 3: Copy the src files to the destination directory.
+  # Step 4: Copy the src files to the destination directory.
   for src in copy_list:
     tail_path = os.path.relpath(src, repo_root)
     dst = os.path.join(dest_root, tail_path)
@@ -202,7 +212,7 @@
       folders_logged.add(src_folder)
       logging.info(src_folder + ' -> ' + os.path.dirname(dst))
     shutil.copy2(src, dst)
-  # Step 4: Re-write the platform infos file in the new repo copy.
+  # Step 5: Re-write the platform infos file in the new repo copy.
   _WritePlatformsInfo(repo_root, dest_root)
 
 
diff --git a/src/starboard/tools/testing/test_runner.py b/src/starboard/tools/testing/test_runner.py
index ee3b7d7..5896355 100755
--- a/src/starboard/tools/testing/test_runner.py
+++ b/src/starboard/tools/testing/test_runner.py
@@ -288,7 +288,7 @@
 
   def _GetAllTestEnvVariables(self):
     """Gets all environment variables used for tests on the given platform."""
-    env_variables = self._platform_config.GetTestEnvVariables()
+    env_variables = {}
     for test, test_env in self._app_config.GetTestEnvVariables().iteritems():
       if test in env_variables:
         env_variables[test].update(test_env)
@@ -309,7 +309,9 @@
     """
 
     # Get the environment variables for the test target
-    env = self.test_env_vars.get(target_name, {})
+    env = {}
+    env.update(self._platform_config.GetTestEnvVariables())
+    env.update(self.test_env_vars.get(target_name, {}))
 
     # Set up a pipe for processing test output
     read_fd, write_fd = os.pipe()
@@ -362,13 +364,19 @@
     self.threads.append(test_launcher)
     self.threads.append(test_reader)
 
+    dump_params = " ARGS:" + " ".join(test_params) if test_params else ""
+    dump_env = " ENV VARS: " + ";".join(
+        "{}={}".format(k, v) for k, v in env.items()) if env else ""
     # Output either the name of the test target or the specific test case
     # being run.
     # pylint: disable=g-long-ternary
-    sys.stdout.write(
-        "Starting {}".format(test_name if test_name else target_name))
+    sys.stdout.write("Starting {}{}{}".format(
+        test_name if test_name else target_name, dump_params, dump_env))
 
     if self.dry_run:
+      # Output a newline before running the test target / case.
+      sys.stdout.write("\n")
+
       if test_params:
         sys.stdout.write(" {}\n".format(test_params))
       write_pipe.close()
@@ -517,14 +525,16 @@
         flaky_passed_tests = []
         for test_case in flaky_failed_tests:
           for retry in range(_FLAKY_RETRY_LIMIT):
-            retry_result = self._RunTest(target_name, test_case)
+            # Sometimes the returned test "name" includes information about the
+            # parameter that was passed to it. This needs to be stripped off.
+            retry_result = self._RunTest(target_name, test_case.split(",")[0])
             print  # Explicit print for empty formatting line.
             if retry_result[2] == 1:
               flaky_passed_tests.append(test_case)
               logging.info("%s succeeded on run #%d!\n", test_case, retry + 2)
               break
             else:
-              logging.warning("%s Failed. Re-running...\n", test_case)
+              logging.warning("%s failed. Re-running...\n", test_case)
         # Remove newly passing flaky tests from failing flaky test list.
         for test_case in flaky_passed_tests:
           flaky_failed_tests.remove(test_case)
diff --git a/src/testing/gtest/include/gtest/gtest.h b/src/testing/gtest/include/gtest/gtest.h
index 8e8d922..4f611e1 100644
--- a/src/testing/gtest/include/gtest/gtest.h
+++ b/src/testing/gtest/include/gtest/gtest.h
@@ -66,6 +66,14 @@
 #include "gtest/gtest-test-part.h"
 #include "gtest/gtest-typed-test.h"
 
+#if defined(COBALT_BUILD_TYPE_QA)
+#error You cannot build unit tests in qa builds.
+#endif
+
+#if defined(COBALT_BUILD_TYPE_GOLD)
+#error You cannot build unit tests in gold builds.
+#endif
+
 // Depending on the platform, different string classes are available.
 // On Linux, in addition to ::std::string, Google also makes use of
 // class ::string, which has the same interface as ::std::string, but
diff --git a/src/testing/gtest/include/gtest/internal/gtest-port.h b/src/testing/gtest/include/gtest/internal/gtest-port.h
index b060901..2f88ab2 100644
--- a/src/testing/gtest/include/gtest/internal/gtest-port.h
+++ b/src/testing/gtest/include/gtest/internal/gtest-port.h
@@ -1572,7 +1572,7 @@
     } else {
       T* new_value = new T();
       bool is_set = SbThreadSetLocalValue(key_, new_value);
-      SB_DCHECK(is_set);
+      SB_CHECK(is_set);
       return new_value;
     }
   }
diff --git a/src/third_party/boringssl/boringssl.gyp b/src/third_party/boringssl/boringssl.gyp
index a6cd7c8..692b6c7 100644
--- a/src/third_party/boringssl/boringssl.gyp
+++ b/src/third_party/boringssl/boringssl.gyp
@@ -15,7 +15,6 @@
       'OPENSSL_NO_DTLS1',
     ],
     'cflags': [
-      '-g',
       '-fPIC',
       '-fvisibility=hidden',
     ],
diff --git a/src/third_party/boringssl/boringssl.gypi b/src/third_party/boringssl/boringssl.gypi
index c1e4e2e..69d1a1f 100644
--- a/src/third_party/boringssl/boringssl.gypi
+++ b/src/third_party/boringssl/boringssl.gypi
@@ -208,11 +208,13 @@
       '<(boringssl_root)/crypto/rc4/rc4.c',
       '<(boringssl_root)/crypto/refcount_c11.c',
       '<(boringssl_root)/crypto/refcount_lock.c',
+      '<(boringssl_root)/crypto/refcount_starboard.c',
       '<(boringssl_root)/crypto/rsa_extra/rsa_asn1.c',
       '<(boringssl_root)/crypto/stack/stack.c',
       '<(boringssl_root)/crypto/thread.c',
       '<(boringssl_root)/crypto/thread_none.c',
       '<(boringssl_root)/crypto/thread_pthread.c',
+      '<(boringssl_root)/crypto/thread_starboard.cc',
       '<(boringssl_root)/crypto/thread_win.c',
       '<(boringssl_root)/crypto/x509/a_digest.c',
       '<(boringssl_root)/crypto/x509/a_sign.c',
diff --git a/src/third_party/boringssl/src/crypto/internal.h b/src/third_party/boringssl/src/crypto/internal.h
index 4b88bcf..dc9c61b 100644
--- a/src/third_party/boringssl/src/crypto/internal.h
+++ b/src/third_party/boringssl/src/crypto/internal.h
@@ -116,6 +116,10 @@
 #include <assert.h>
 #include <string.h>
 
+#include "starboard/atomic.h"
+#include "starboard/once.h"
+#include "starboard/thread.h"
+
 #if !defined(__cplusplus)
 #if defined(__GNUC__) && \
     (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) < 40800
@@ -370,7 +374,10 @@
 
 // Thread-safe initialisation.
 
-#if defined(OPENSSL_NO_THREADS)
+#if defined(STARBOARD)
+typedef SbOnceControl CRYPTO_once_t;
+#define CRYPTO_ONCE_INIT SB_ONCE_INITIALIZER
+#elif defined(OPENSSL_NO_THREADS)
 typedef uint32_t CRYPTO_once_t;
 #define CRYPTO_ONCE_INIT 0
 #elif defined(OPENSSL_WINDOWS_THREADS)
@@ -390,13 +397,21 @@
 //
 // The |once| argument must be a |CRYPTO_once_t| that has been initialised with
 // the value |CRYPTO_ONCE_INIT|.
+#if defined(STARBOARD)
+#define CRYPTO_once SbOnce
+#else
 OPENSSL_EXPORT void CRYPTO_once(CRYPTO_once_t *once, void (*init)(void));
+#endif
 
 
 // Reference counting.
 
 // CRYPTO_REFCOUNT_MAX is the value at which the reference count saturates.
+#if defined(STARBOARD)
+#define CRYPTO_REFCOUNT_MAX 0x7fffffff
+#else
 #define CRYPTO_REFCOUNT_MAX 0xffffffff
+#endif
 
 // CRYPTO_refcount_inc atomically increments the value at |*count| unless the
 // value would overflow. It's safe for multiple threads to concurrently call
@@ -426,7 +441,13 @@
 // thread.h as a structure large enough to fit the real type. The global lock is
 // a different type so it may be initialized with platform initializer macros.
 
-#if defined(OPENSSL_NO_THREADS)
+#if defined(STARBOARD)
+struct CRYPTO_STATIC_MUTEX {
+  SbAtomic32 initialized;
+  CRYPTO_MUTEX mutex;
+};
+#define CRYPTO_STATIC_MUTEX_INIT { 0 }
+#elif defined(OPENSSL_NO_THREADS)
 struct CRYPTO_STATIC_MUTEX {
   char padding;  // Empty structs have different sizes in C and C++.
 };
diff --git a/src/third_party/boringssl/src/crypto/refcount_lock.c b/src/third_party/boringssl/src/crypto/refcount_lock.c
index 54bc6ca..f6f0727 100644
--- a/src/third_party/boringssl/src/crypto/refcount_lock.c
+++ b/src/third_party/boringssl/src/crypto/refcount_lock.c
@@ -19,7 +19,7 @@
 #include <openssl/type_check.h>
 
 
-#if !defined(OPENSSL_C11_ATOMIC)
+#if !defined(OPENSSL_C11_ATOMIC) && !defined(STARBOARD)
 
 OPENSSL_COMPILE_ASSERT((CRYPTO_refcount_t)-1 == CRYPTO_REFCOUNT_MAX,
                        CRYPTO_REFCOUNT_MAX_is_incorrect);
@@ -50,4 +50,4 @@
   return ret;
 }
 
-#endif  // OPENSSL_C11_ATOMIC
+#endif  // !OPENSSL_C11_ATOMIC && !STARBOARD
diff --git a/src/third_party/boringssl/src/crypto/refcount_starboard.c b/src/third_party/boringssl/src/crypto/refcount_starboard.c
new file mode 100644
index 0000000..8c9bc39
--- /dev/null
+++ b/src/third_party/boringssl/src/crypto/refcount_starboard.c
@@ -0,0 +1,57 @@
+// Copyright 2019 The Cobalt Authors. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// Based on refcount_c11.c implementation.
+
+#include "internal.h"
+
+#if defined(STARBOARD)
+
+#include "starboard/atomic.h"
+
+void CRYPTO_refcount_inc(CRYPTO_refcount_t *count) {
+  CRYPTO_refcount_t expected = SbAtomicNoBarrier_Load(count);
+
+  while (expected != CRYPTO_REFCOUNT_MAX) {
+    CRYPTO_refcount_t new_value = expected + 1;
+    CRYPTO_refcount_t old_value = SbAtomicNoBarrier_CompareAndSwap(
+        count, expected, new_value);
+    if (old_value == expected) {
+      break;
+    }
+    expected = old_value;
+  }
+}
+
+int CRYPTO_refcount_dec_and_test_zero(CRYPTO_refcount_t *count) {
+  CRYPTO_refcount_t expected = SbAtomicNoBarrier_Load(count);
+
+  for (;;) {
+    if (expected == 0) {
+      OPENSSL_port_abort();
+    } else if (expected == CRYPTO_REFCOUNT_MAX) {
+      return 0;
+    } else {
+      CRYPTO_refcount_t new_value = expected - 1;
+      CRYPTO_refcount_t old_value = SbAtomicNoBarrier_CompareAndSwap(
+          count, expected, new_value);
+      if (old_value == expected) {
+        return new_value == 0;
+      }
+      expected = old_value;
+    }
+  }
+}
+
+#endif  // defined(STARBOARD)
diff --git a/src/third_party/boringssl/src/crypto/thread_none.c b/src/third_party/boringssl/src/crypto/thread_none.c
index 718d960..8475854 100644
--- a/src/third_party/boringssl/src/crypto/thread_none.c
+++ b/src/third_party/boringssl/src/crypto/thread_none.c
@@ -14,7 +14,7 @@
 
 #include "internal.h"
 
-#if defined(OPENSSL_NO_THREADS)
+#if defined(OPENSSL_NO_THREADS) && !defined(STARBOARD)
 
 void CRYPTO_MUTEX_init(CRYPTO_MUTEX *lock) {}
 
@@ -56,4 +56,4 @@
   return 1;
 }
 
-#endif  // OPENSSL_NO_THREADS
+#endif  // OPENSSL_NO_THREADS && !STARBOARD
diff --git a/src/third_party/boringssl/src/crypto/thread_starboard.cc b/src/third_party/boringssl/src/crypto/thread_starboard.cc
new file mode 100644
index 0000000..40ac897
--- /dev/null
+++ b/src/third_party/boringssl/src/crypto/thread_starboard.cc
@@ -0,0 +1,231 @@
+// Copyright 2019 The Cobalt Authors. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// Based on thread_pthread.c.
+
+#include "internal.h"
+
+#if defined(STARBOARD)
+
+#include <openssl/mem.h>
+
+#include "starboard/once.h"
+#include "starboard/thread.h"
+
+namespace {
+
+// Each enum of thread_local_data_t corresponds to a ThreadLocalEntry.
+struct ThreadLocalEntry {
+  thread_local_destructor_t destructor;
+  void* value;
+};
+
+// One thread local key will point to an array of ThreadLocalEntry.
+SbThreadLocalKey g_thread_local_key = kSbThreadLocalKeyInvalid;
+
+// Control the creation of the global thread local key.
+SbOnceControl g_thread_local_once_control = SB_ONCE_INITIALIZER;
+
+void ThreadLocalDestructor(void* value) {
+  if (value) {
+    ThreadLocalEntry* thread_locals = static_cast<ThreadLocalEntry*>(value);
+    for (int i = 0; i < NUM_OPENSSL_THREAD_LOCALS; ++i) {
+      if (thread_locals[i].destructor != nullptr) {
+        thread_locals[i].destructor(thread_locals[i].value);
+      }
+    }
+    OPENSSL_free(value);
+  }
+}
+
+void ThreadLocalInit() {
+  g_thread_local_key = SbThreadCreateLocalKey(&ThreadLocalDestructor);
+}
+
+void EnsureInitialized(struct CRYPTO_STATIC_MUTEX* lock) {
+  enum {
+    kUninitialized = 0,
+    kInitializing,
+    kInitialized
+  };
+
+  if (SbAtomicNoBarrier_Load(&lock->initialized) == kInitialized) {
+    return;
+  }
+  if (SbAtomicNoBarrier_CompareAndSwap(&lock->initialized,
+      kUninitialized, kInitializing) == kUninitialized) {
+    CRYPTO_MUTEX_init(&lock->mutex);
+    SbAtomicNoBarrier_Store(&lock->initialized, kInitialized);
+    return;
+  }
+  while (SbAtomicNoBarrier_Load(&lock->initialized) != kInitialized) {
+    SbThreadSleep(kSbTimeMillisecond);
+  }
+}
+
+}  // namespace
+
+void CRYPTO_MUTEX_init(CRYPTO_MUTEX* lock) {
+  if (!SbMutexCreate(&lock->mutex)) {
+    OPENSSL_port_abort();
+  }
+  if (!SbConditionVariableCreate(&lock->condition, &lock->mutex)) {
+    OPENSSL_port_abort();
+  }
+  lock->readers = 0;
+  lock->writing = false;
+}
+
+// https://en.wikipedia.org/wiki/Readers%E2%80%93writer_lock
+void CRYPTO_MUTEX_lock_read(CRYPTO_MUTEX* lock) {
+  if (SbMutexAcquire(&lock->mutex) != kSbMutexAcquired) {
+    OPENSSL_port_abort();
+  }
+  while (lock->writing) {
+    if (SbConditionVariableWait(&lock->condition, &lock->mutex) ==
+        kSbConditionVariableFailed) {
+      OPENSSL_port_abort();
+    }
+  }
+  ++(lock->readers);
+  if (!SbMutexRelease(&lock->mutex)) {
+    OPENSSL_port_abort();
+  }
+}
+
+// https://en.wikipedia.org/wiki/Readers%E2%80%93writer_lock
+void CRYPTO_MUTEX_lock_write(CRYPTO_MUTEX* lock) {
+  if (SbMutexAcquire(&lock->mutex) != kSbMutexAcquired) {
+    OPENSSL_port_abort();
+  }
+  while (lock->writing) {
+    if (SbConditionVariableWait(&lock->condition, &lock->mutex) ==
+        kSbConditionVariableFailed) {
+      OPENSSL_port_abort();
+    }
+  }
+  lock->writing = true;
+  while (lock->readers > 0) {
+    if (SbConditionVariableWait(&lock->condition, &lock->mutex) ==
+        kSbConditionVariableFailed) {
+      OPENSSL_port_abort();
+    }
+  }
+  if (!SbMutexRelease(&lock->mutex)) {
+    OPENSSL_port_abort();
+  }
+}
+
+// https://en.wikipedia.org/wiki/Readers%E2%80%93writer_lock
+void CRYPTO_MUTEX_unlock_read(CRYPTO_MUTEX* lock) {
+  if (SbMutexAcquire(&lock->mutex) != kSbMutexAcquired) {
+    OPENSSL_port_abort();
+  }
+  if (--(lock->readers) == 0) {
+    SbConditionVariableBroadcast(&lock->condition);
+  }
+  if (!SbMutexRelease(&lock->mutex)) {
+    OPENSSL_port_abort();
+  }
+}
+
+// https://en.wikipedia.org/wiki/Readers%E2%80%93writer_lock
+void CRYPTO_MUTEX_unlock_write(CRYPTO_MUTEX* lock) {
+  if (SbMutexAcquire(&lock->mutex) != kSbMutexAcquired) {
+    OPENSSL_port_abort();
+  }
+  lock->writing = false;
+  SbConditionVariableBroadcast(&lock->condition);
+  if (!SbMutexRelease(&lock->mutex)) {
+    OPENSSL_port_abort();
+  }
+}
+
+void CRYPTO_MUTEX_cleanup(CRYPTO_MUTEX* lock) {
+  if (!SbConditionVariableDestroy(&lock->condition)) {
+    OPENSSL_port_abort();
+  }
+  if (!SbMutexDestroy(&lock->mutex)) {
+    OPENSSL_port_abort();
+  }
+}
+
+void CRYPTO_STATIC_MUTEX_lock_read(struct CRYPTO_STATIC_MUTEX* lock) {
+  EnsureInitialized(lock);
+  CRYPTO_MUTEX_lock_read(&lock->mutex);
+}
+
+void CRYPTO_STATIC_MUTEX_lock_write(struct CRYPTO_STATIC_MUTEX* lock) {
+  EnsureInitialized(lock);
+  CRYPTO_MUTEX_lock_write(&lock->mutex);
+}
+
+void CRYPTO_STATIC_MUTEX_unlock_read(struct CRYPTO_STATIC_MUTEX* lock) {
+  EnsureInitialized(lock);
+  CRYPTO_MUTEX_unlock_read(&lock->mutex);
+}
+
+void CRYPTO_STATIC_MUTEX_unlock_write(struct CRYPTO_STATIC_MUTEX* lock) {
+  EnsureInitialized(lock);
+  CRYPTO_MUTEX_unlock_write(&lock->mutex);
+}
+
+void* CRYPTO_get_thread_local(thread_local_data_t index) {
+  SbOnce(&g_thread_local_once_control, &ThreadLocalInit);
+  if (!SbThreadIsValidLocalKey(g_thread_local_key)) {
+    return nullptr;
+  }
+
+  ThreadLocalEntry* thread_locals = static_cast<ThreadLocalEntry*>(
+      SbThreadGetLocalValue(g_thread_local_key));
+  if (thread_locals == nullptr) {
+    return nullptr;
+  }
+
+  return thread_locals[index].value;
+}
+
+int CRYPTO_set_thread_local(thread_local_data_t index, void *value,
+                            thread_local_destructor_t destructor) {
+  SbOnce(&g_thread_local_once_control, &ThreadLocalInit);
+  if (!SbThreadIsValidLocalKey(g_thread_local_key)) {
+    destructor(value);
+    return 0;
+  }
+
+  ThreadLocalEntry* thread_locals = static_cast<ThreadLocalEntry*>(
+      SbThreadGetLocalValue(g_thread_local_key));
+  if (thread_locals == nullptr) {
+    size_t thread_locals_size =
+        sizeof(ThreadLocalEntry) * NUM_OPENSSL_THREAD_LOCALS;
+    thread_locals = static_cast<ThreadLocalEntry*>(
+        OPENSSL_malloc(thread_locals_size));
+    if (thread_locals == nullptr) {
+      destructor(value);
+      return 0;
+    }
+    OPENSSL_memset(thread_locals, 0, thread_locals_size);
+    if (!SbThreadSetLocalValue(g_thread_local_key, thread_locals)) {
+      OPENSSL_free(thread_locals);
+      destructor(value);
+      return 0;
+    }
+  }
+
+  thread_locals[index].destructor = destructor;
+  thread_locals[index].value = value;
+  return 1;
+}
+
+#endif  // defined(STARBOARD)
diff --git a/src/third_party/boringssl/src/include/openssl/thread.h b/src/third_party/boringssl/src/include/openssl/thread.h
index 98073b0..da3cdfa 100644
--- a/src/third_party/boringssl/src/include/openssl/thread.h
+++ b/src/third_party/boringssl/src/include/openssl/thread.h
@@ -61,12 +61,29 @@
 
 #include <openssl/base.h>
 
+#include "starboard/atomic.h"
+#include "starboard/condition_variable.h"
+#include "starboard/mutex.h"
+
 #if defined(__cplusplus)
 extern "C" {
 #endif
 
 
-#if defined(OPENSSL_NO_THREADS)
+#if defined(STARBOARD)
+typedef struct crypto_mutex_st {
+  // It would be nice to use starboard::RWLock. However, that's a C++ class, so
+  // it can't even be included in this C header. It's possible to use an opaque
+  // pointer to it, but then an allocation would be needed or we somehow embed
+  // a byte array that is sizeof(starboard::RWLock) without including the
+  // declaration. Avoid the complication and just implement the RWMutex using
+  // starboard C structs.
+  SbMutex mutex;
+  SbConditionVariable condition;
+  size_t readers;
+  bool writing;
+} CRYPTO_MUTEX;
+#elif defined(OPENSSL_NO_THREADS)
 typedef struct crypto_mutex_st {
   char padding;  // Empty structs have different sizes in C and C++.
 } CRYPTO_MUTEX;
@@ -98,7 +115,11 @@
 // as C code that might not set -std=c11. So, in practice, it's not possible to
 // do that. Instead we statically assert that the size and native alignment of
 // a plain uint32_t and an _Atomic uint32_t are equal in refcount_c11.c.
+#if defined(STARBOARD)
+typedef SbAtomic32 CRYPTO_refcount_t;
+#else
 typedef uint32_t CRYPTO_refcount_t;
+#endif
 
 
 // Deprecated functions.
diff --git a/src/third_party/icu/README.cobalt b/src/third_party/icu/README.cobalt
new file mode 100644
index 0000000..cf85b3f
--- /dev/null
+++ b/src/third_party/icu/README.cobalt
@@ -0,0 +1,102 @@
+How to rebuild the ICU data files.
+
+This is based off of section B in the README.chromium file.
+
+1. First revert to the non-Starboardized version of ICU in the Cobalt source
+   tree. This is necessary because regenerating the data files requires building
+   ICU, and this is best done with a non-Starboardized version of the library.
+
+   You can do this by looking at the git log for third_party/icu and tracing
+   it back until you find the first non-Cobalt change, and then checking out
+   that commit.
+
+2. Set ICU_ROOT to the directory of the ICU source code in the Cobalt source
+   tree, e.g. `$COBALT_SRC_ROOT/src/third_party/icu`.
+
+3. Create a build directory outside of the Cobalt codebase, and make that your
+   current working directory.  Set ICU_DATA_ROOT to this directory.
+
+4. Configure the ICU build.  Note that we setup our compiler defines in the same
+   way that they are set when building ICU within Cobalt, according to our
+   icu.gyp file.  Note that below, `-DUCONFIG_NO_LEGACY_CONVERSION=1` is left
+   out on purpose even though it is used when building ICU for Cobalt because
+   it causes an issue when converting to big endian
+   ( https://unicode-org.atlassian.net/browse/ICU-11046 ).  In addition,
+   `-DU_CHARSET_IS_UTF8=1` is also left out for the same reason as it was found
+   to produce a similar error.
+
+   ```
+   env CPPFLAGS="-DUCONFIG_ONLY_HTML_CONVERSION=1 -DUCONFIG_NO_TRANSLITERATION=1 -DUCONFIG_NO_COLLATION=1" $ICU_ROOT/source/runConfigureICU Linux --disable-layout
+
+   ```
+
+5. Run make.
+
+   ```
+   make -j8
+   ```
+
+   Note that it's okay for it to end in an error around `css3transform.res`,
+   enough of it should have built successfully for us to complete the remaining
+   instructions.
+
+6. Revert your ICU source checkout back to the tip, there have been local
+   modifications to it (specifically `source/data/mappings/convrtrs.txt`) that
+   we want to pick up here.
+
+   ```
+   cd $ICU_ROOT
+   git checkout origin/COBALT
+   cd $ICU_DATA_ROOT
+   ```
+
+7. Run `$ICU_ROOT/scripts/trim_data.sh`
+
+8. Run `$ICU_ROOT/android/patch_locale.sh`.
+
+9. Run `$ICU_ROOT/scripts/make_data.sh`.
+
+10. Run `$ICU_ROOT/scripts/clean_up_data_source.sh` to clean up the changes
+   made to $ICU_ROOT from the call to `patch_locale.sh`.
+
+11. Create a new directory where we will rebuild ICU with different options
+    because the options used above will produce a version of the tool `icupkg` (
+    which we need to use to translate from little to big endian) that does not
+    work.  Call this new directory $ICU_PKG_ROOT.
+
+12. Change directory to $ICU_PKG_ROOT.
+
+13. Run `$ICU_ROOT/source/runConfigureICU Linux --disable-layout && make -j8`
+
+14. Run `$ICU_ROOT/scripts/make_data.sh`
+
+15. Run `export LD_LIBRARY_PATH=$ICU_PKG_ROOT/lib`
+
+16. Run `sudo apt install icu-devtools` to obtain the `icupkg` command and its
+    dependencies.  Even though you will be running a locally-built version of
+    `icupkg`, you will need the shared libraries installed by this command.
+
+17. Replace the files in this directory with the new files that you have built.
+    They will exist as a little-endian package file, but you can use the
+    `icupkg` tool to both unpack the files out of the package (which Cobalt
+    prefers), and switch from little-endian to big-endian.
+
+    Run:
+
+    ```
+    cd $COBALT_SRC_ROOT/src/cobalt/content/icu
+    rm -rf *
+    mkdir icudt56l icudt56b
+    $ICU_PKG_ROOT/bin/icupkg -tl -x '*' -d icudt56l $ICU_DATA_ROOT/data/out/tmp/icudt56l.dat
+    $ICU_PKG_ROOT/bin/icupkg -tb -x '*' -d icudt56b $ICU_DATA_ROOT/data/out/tmp/icudt56l.dat
+    ```
+
+
+You should now have the ICU data files generated and ready to go in the Cobalt
+source tree, and you can clean up any outstanding files.  If there are any
+leftover changes in your $ICU_ROOT directory, you can revert them.  At this
+point you can re-gyp, re-ninja, and run Cobalt and it should work.
+
+Note that at the time of this writing, the final resulting contents had a size
+of 6.9MB, from running the command
+`du -sh $COBALT_SRC_ROOT/src/cobalt/content/icu/icudt56l`.
diff --git a/src/third_party/libvpx_gpu/vp9-dec-core/build/obj_int_extract.vcxproj b/src/third_party/libvpx_gpu/vp9-dec-core/build/obj_int_extract.vcxproj
deleted file mode 100644
index b4fddc6..0000000
--- a/src/third_party/libvpx_gpu/vp9-dec-core/build/obj_int_extract.vcxproj
+++ /dev/null
@@ -1,166 +0,0 @@
-﻿<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <ItemGroup Label="ProjectConfigurations">
-    <ProjectConfiguration Include="Debug|Win32">
-      <Configuration>Debug</Configuration>
-      <Platform>Win32</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Debug|x64">
-      <Configuration>Debug</Configuration>
-      <Platform>x64</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Release|Win32">
-      <Configuration>Release</Configuration>
-      <Platform>Win32</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Release|x64">
-      <Configuration>Release</Configuration>
-      <Platform>x64</Platform>
-    </ProjectConfiguration>
-  </ItemGroup>
-  <PropertyGroup Label="Globals">
-    <ProjectGuid>{E1360C65-D375-4335-8057-7ED99CC3F9B2}</ProjectGuid>
-    <RootNamespace>obj_int_extract</RootNamespace>
-    <Keyword>ManagedCProj</Keyword>
-  </PropertyGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
-    <ConfigurationType>Application</ConfigurationType>
-    <CharacterSet>Unicode</CharacterSet>
-    <WholeProgramOptimization>false</WholeProgramOptimization>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
-    <ConfigurationType>Application</ConfigurationType>
-    <CharacterSet>Unicode</CharacterSet>
-    <WholeProgramOptimization>false</WholeProgramOptimization>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
-    <ConfigurationType>Application</ConfigurationType>
-    <CharacterSet>Unicode</CharacterSet>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
-    <ConfigurationType>Application</ConfigurationType>
-    <CharacterSet>Unicode</CharacterSet>
-  </PropertyGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
-  <ImportGroup Label="ExtensionSettings">
-  </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-  </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-  </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-  </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-  </ImportGroup>
-  <PropertyGroup Label="UserMacros" />
-  <PropertyGroup>
-    <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
-  </PropertyGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
-    <ClCompile>
-      <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>.;..;./build_$(Platform);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>WIN32;DEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
-      <WarningLevel>Level3</WarningLevel>
-      <DebugInformationFormat>OldStyle</DebugInformationFormat>
-    </ClCompile>
-    <Link>
-      <OutputFile>obj_int_extract.exe</OutputFile>
-      <GenerateDebugInformation>true</GenerateDebugInformation>
-    </Link>
-    <PreBuildEvent>
-      <Command>
-      </Command>
-    </PreBuildEvent>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-    <ClCompile>
-      <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>.;..;$(ProjectDir)build_$(Platform);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>WIN32;DEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
-      <WarningLevel>Level3</WarningLevel>
-      <DebugInformationFormat>OldStyle</DebugInformationFormat>
-    </ClCompile>
-    <Link>
-      <OutputFile>obj_int_extract.exe</OutputFile>
-      <GenerateDebugInformation>true</GenerateDebugInformation>
-    </Link>
-    <PreBuildEvent>
-      <Command>
-      </Command>
-    </PreBuildEvent>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
-    <ClCompile>
-      <Optimization>MaxSpeed</Optimization>
-      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
-      <AdditionalIncludeDirectories>.;..;./build_$(Platform);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
-      <PrecompiledHeader>
-      </PrecompiledHeader>
-      <WarningLevel>Level3</WarningLevel>
-      <DebugInformationFormat>
-      </DebugInformationFormat>
-    </ClCompile>
-    <Link>
-      <OutputFile>obj_int_extract.exe</OutputFile>
-      <GenerateDebugInformation>true</GenerateDebugInformation>
-    </Link>
-    <PreBuildEvent>
-      <Command>
-      </Command>
-    </PreBuildEvent>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
-    <ClCompile>
-      <Optimization>MaxSpeed</Optimization>
-      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
-      <AdditionalIncludeDirectories>.;..;./build_$(Platform);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
-      <PrecompiledHeader>
-      </PrecompiledHeader>
-      <WarningLevel>Level3</WarningLevel>
-      <DebugInformationFormat>
-      </DebugInformationFormat>
-    </ClCompile>
-    <Link>
-      <OutputFile>obj_int_extract.exe</OutputFile>
-      <GenerateDebugInformation>true</GenerateDebugInformation>
-    </Link>
-    <PreBuildEvent>
-      <Command>
-      </Command>
-    </PreBuildEvent>
-  </ItemDefinitionGroup>
-  <ItemGroup>
-    <ClCompile Include="make\obj_int_extract.c">
-      <ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)build_make_obj_int_extract.obj</ObjectFileName>
-      <ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)build_make_obj_int_extract.obj</ObjectFileName>
-      <ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)build_make_obj_int_extract.obj</ObjectFileName>
-      <ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)build_make_obj_int_extract.obj</ObjectFileName>
-    </ClCompile>
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="obj_int_extract.bat" />
-  </ItemGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
-  <ImportGroup Label="ExtensionTargets">
-  </ImportGroup>
-</Project>
\ No newline at end of file
diff --git a/src/third_party/libvpx_gpu/vp9-dec-core/build/obj_int_extract.vcxproj.filters b/src/third_party/libvpx_gpu/vp9-dec-core/build/obj_int_extract.vcxproj.filters
deleted file mode 100644
index 93e8543..0000000
--- a/src/third_party/libvpx_gpu/vp9-dec-core/build/obj_int_extract.vcxproj.filters
+++ /dev/null
@@ -1,31 +0,0 @@
-﻿<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <ItemGroup>
-    <Filter Include="Source Files">
-      <UniqueIdentifier>4C149771-9F7E-4C2B-541A-6353828BEB52</UniqueIdentifier>
-      <Extensions>c;cc;def;odl;idl;hpj;bat;asm;asmx</Extensions>
-    </Filter>
-    <Filter Include="Header Files">
-      <UniqueIdentifier>05FD4944-2E7C-8CFC-0443-D6DAD06BE957</UniqueIdentifier>
-      <Extensions>h;hm;inl;inc;xsd</Extensions>
-    </Filter>
-    <Filter Include="Resource Files">
-      <UniqueIdentifier>01A2776B-A9DA-4C36-2179-2D64860A04BF</UniqueIdentifier>
-      <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
-    </Filter>
-    <Filter Include="Build Files">
-      <UniqueIdentifier>83458B37-ADD7-A5C2-40D2-5EB607F2C856</UniqueIdentifier>
-      <Extensions>mk</Extensions>
-    </Filter>
-  </ItemGroup>
-  <ItemGroup>
-    <ClCompile Include="make\obj_int_extract.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="obj_int_extract.bat">
-      <Filter>Source Files</Filter>
-    </None>
-  </ItemGroup>
-</Project>
\ No newline at end of file
diff --git a/src/third_party/libvpx_gpu/vp9-dec-core/build/vpx-dec-core - Copy.vcxproj b/src/third_party/libvpx_gpu/vp9-dec-core/build/vpx-dec-core - Copy.vcxproj
deleted file mode 100644
index e101eb4..0000000
--- a/src/third_party/libvpx_gpu/vp9-dec-core/build/vpx-dec-core - Copy.vcxproj
+++ /dev/null
@@ -1,477 +0,0 @@
-﻿<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <ItemGroup Label="ProjectConfigurations">
-    <ProjectConfiguration Include="Debug|ORBIS">
-      <Configuration>Debug</Configuration>
-      <Platform>ORBIS</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Debug|Win32">
-      <Configuration>Debug</Configuration>
-      <Platform>Win32</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Debug|x64">
-      <Configuration>Debug</Configuration>
-      <Platform>x64</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Release|ORBIS">
-      <Configuration>Release</Configuration>
-      <Platform>ORBIS</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Release|Win32">
-      <Configuration>Release</Configuration>
-      <Platform>Win32</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Release|x64">
-      <Configuration>Release</Configuration>
-      <Platform>x64</Platform>
-    </ProjectConfiguration>
-  </ItemGroup>
-  <PropertyGroup Label="Globals">
-    <ProjectGuid>{DCE19DAF-69AC-46DB-B14A-39F0FAA5DB74}</ProjectGuid>
-    <RootNamespace>vpx</RootNamespace>
-    <Keyword>ManagedCProj</Keyword>
-    <ProjectName>vp9-dec-core</ProjectName>
-  </PropertyGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
-    <ConfigurationType>StaticLibrary</ConfigurationType>
-    <CharacterSet>Unicode</CharacterSet>
-    <WholeProgramOptimization>true</WholeProgramOptimization>
-    <PlatformToolset>v120</PlatformToolset>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'" Label="Configuration">
-    <ConfigurationType>StaticLibrary</ConfigurationType>
-    <CharacterSet>Unicode</CharacterSet>
-    <WholeProgramOptimization>true</WholeProgramOptimization>
-    <PlatformToolset>v120</PlatformToolset>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
-    <ConfigurationType>StaticLibrary</ConfigurationType>
-    <CharacterSet>Unicode</CharacterSet>
-    <WholeProgramOptimization>true</WholeProgramOptimization>
-    <PlatformToolset>v120</PlatformToolset>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
-    <ConfigurationType>StaticLibrary</ConfigurationType>
-    <CharacterSet>Unicode</CharacterSet>
-    <PlatformToolset>v120</PlatformToolset>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'" Label="Configuration">
-    <ConfigurationType>StaticLibrary</ConfigurationType>
-    <CharacterSet>Unicode</CharacterSet>
-    <PlatformToolset>v140</PlatformToolset>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
-    <ConfigurationType>StaticLibrary</ConfigurationType>
-    <CharacterSet>Unicode</CharacterSet>
-    <PlatformToolset>v120</PlatformToolset>
-  </PropertyGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
-  <ImportGroup Label="ExtensionSettings" />
-  <ImportGroup Label="PropertySheets">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="$(SolutionDir)\SceGnm.props" Condition="Exists('$(SolutionDir)\SceGnm.Development.props')" />
-    <Import Project="$(SCE_ORBIS_SDK_DIR)\host_tools\msbuild\SceGnm.props" Condition="!Exists('$(SolutionDir)\SceGnm.Development.props')" />
-  </ImportGroup>
-  <PropertyGroup Label="UserMacros" />
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
-    <OutDir>$(SolutionDir)..\lib\msvs10\$(Configuration)\win$(PlatformArchitecture)\</OutDir>
-    <IntDir>$(SolutionDir)..\obj\msvs10\$(ProjectName)\$(Configuration)\win$(PlatformArchitecture)\</IntDir>
-    <TargetName>$(ProjectName)$(PlatformArchitecture)</TargetName>
-    <IncludePath>$(DXSDK_DIR)include;$(IncludePath)</IncludePath>
-    <LibraryPath>$(DXSDK_DIR)lib\x64;$(LibraryPath)</LibraryPath>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">
-    <TargetName>$(ProjectName)$(PlatformArchitecture)</TargetName>
-    <IncludePath>$(IncludePath)</IncludePath>
-    <LibraryPath>$(LibraryPath)</LibraryPath>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-    <OutDir>$(SolutionDir)..\lib\msvs10\$(Configuration)\win$(PlatformArchitecture)\</OutDir>
-    <IntDir>$(SolutionDir)..\obj\msvs10\$(ProjectName)\$(Configuration)\win$(PlatformArchitecture)\</IntDir>
-    <TargetName>$(ProjectName)$(PlatformArchitecture)</TargetName>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
-    <OutDir>$(SolutionDir)..\lib\msvs10\$(Configuration)\win$(PlatformArchitecture)\</OutDir>
-    <IntDir>$(SolutionDir)..\obj\msvs10\$(ProjectName)\$(Configuration)\win$(PlatformArchitecture)\</IntDir>
-    <TargetName>$(ProjectName)$(PlatformArchitecture)</TargetName>
-    <IncludePath>$(DXSDK_DIR)include;$(IncludePath)</IncludePath>
-    <LibraryPath>$(DXSDK_DIR)lib\x64;$(LibraryPath)</LibraryPath>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">
-    <TargetName>$(ProjectName)$(PlatformArchitecture)</TargetName>
-    <IncludePath>$(DXSDK_DIR)include;$(IncludePath)</IncludePath>
-    <LibraryPath>$(DXSDK_DIR)lib\x64;$(LibraryPath)</LibraryPath>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
-    <OutDir>$(SolutionDir)..\lib\msvs10\$(Configuration)\win$(PlatformArchitecture)\</OutDir>
-    <IntDir>$(SolutionDir)..\obj\msvs10\$(ProjectName)\$(Configuration)\win$(PlatformArchitecture)\</IntDir>
-    <TargetName>$(ProjectName)$(PlatformArchitecture)</TargetName>
-  </PropertyGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
-    <PreBuildEvent>
-      <Command>cd ./script
-call amd_build.bat</Command>
-    </PreBuildEvent>
-    <ClCompile>
-      <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>.;..;$(SolutionDir)/../../Thirdparty/amd/mcl/1.6/amdmcl/inc;$(ProjectDir)build_$(Platform);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>WIN32;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
-      <WarningLevel>Level3</WarningLevel>
-    </ClCompile>
-    <Lib>
-      <AdditionalLibraryDirectories>
-      </AdditionalLibraryDirectories>
-      <IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
-    </Lib>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">
-    <PreBuildEvent>
-      <Command>cd ./script
-call amd_build.bat</Command>
-    </PreBuildEvent>
-    <ClCompile>
-      <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>.;..;$(SolutionDir)/../../Thirdparty/amd/mcl/1.6/amdmcl/inc;$(ProjectDir)ORBIS_Debug;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>WIN32;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
-      <WarningLevel>Level3</WarningLevel>
-    </ClCompile>
-    <Lib>
-      <AdditionalLibraryDirectories>
-      </AdditionalLibraryDirectories>
-      <IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
-    </Lib>
-    <PSSL />
-    <PSSL>
-      <Verbosity>Quiet</Verbosity>
-    </PSSL>
-    <PSSL>
-      <AuxData>Disabled</AuxData>
-    </PSSL>
-    <Compile_PSSL_To_Header />
-    <Compile_PSSL_To_Header />
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-    <PreBuildEvent>
-      <Command>cd ./script
-call amd_build.bat</Command>
-    </PreBuildEvent>
-    <ClCompile>
-      <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>.;..;$(SolutionDir)/../../Thirdparty/amd/mcl/1.6/amdmcl/inc;$(ProjectDir)build_$(Platform);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>WIN32;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
-      <WarningLevel>Level3</WarningLevel>
-    </ClCompile>
-    <Lib>
-      <AdditionalLibraryDirectories>
-      </AdditionalLibraryDirectories>
-      <IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
-    </Lib>
-    <ProjectReference>
-      <LinkLibraryDependencies>true</LinkLibraryDependencies>
-    </ProjectReference>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
-    <PreBuildEvent>
-      <Command>cd ./script
-call amd_build.bat</Command>
-    </PreBuildEvent>
-    <ClCompile>
-      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
-      <Optimization>MaxSpeed</Optimization>
-      <AdditionalIncludeDirectories>.;..;$(SolutionDir)/../../Thirdparty/amd/mcl/1.6/amdmcl/inc;$(ProjectDir)build_$(Platform);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>WIN32;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
-      <WarningLevel>Level3</WarningLevel>
-      <WholeProgramOptimization>true</WholeProgramOptimization>
-    </ClCompile>
-    <Lib>
-      <AdditionalLibraryDirectories>
-      </AdditionalLibraryDirectories>
-      <IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
-    </Lib>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">
-    <PreBuildEvent>
-      <Command>cd ./script
-call amd_build.bat</Command>
-    </PreBuildEvent>
-    <ClCompile>
-      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
-      <Optimization>MaxSpeed</Optimization>
-      <AdditionalIncludeDirectories>.;..;$(SolutionDir)/../../Thirdparty/amd/mcl/1.6/amdmcl/inc;$(ProjectDir)build_$(Platform);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>WIN32;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
-      <WarningLevel>Level3</WarningLevel>
-      <WholeProgramOptimization>true</WholeProgramOptimization>
-    </ClCompile>
-    <Lib>
-      <AdditionalLibraryDirectories>
-      </AdditionalLibraryDirectories>
-      <IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
-    </Lib>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
-    <PreBuildEvent>
-      <Command>cd ./script
-call amd_build.bat</Command>
-    </PreBuildEvent>
-    <ClCompile>
-      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
-      <Optimization>MaxSpeed</Optimization>
-      <AdditionalIncludeDirectories>.;..;$(SolutionDir)/../../Thirdparty/amd/mcl/1.6/amdmcl/inc;$(ProjectDir)build_$(Platform);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>WIN32;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
-      <WarningLevel>Level3</WarningLevel>
-    </ClCompile>
-    <Lib>
-      <AdditionalLibraryDirectories>$(AMDAPPSDKROOT)\lib\x86_64;</AdditionalLibraryDirectories>
-      <IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
-    </Lib>
-  </ItemDefinitionGroup>
-  <ItemGroup>
-    <ClCompile Include="..\vp9\decoder\interop\vp9lux_cl_wrapper.cpp">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">true</ExcludedFromBuild>
-    </ClCompile>
-    <ClCompile Include="..\vp9\decoder\interop\vp9lux_interop.c">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">true</ExcludedFromBuild>
-    </ClCompile>
-    <ClCompile Include="..\vp9\decoder\vp9lux_alt_inter_ocl.cpp" />
-    <ClCompile Include="..\vp9\decoder\vp9lux_decode_block.cpp" />
-    <ClCompile Include="..\vp9\decoder\vp9lux_dx_compute.cpp" />
-    <ClCompile Include="..\vp9\decoder\vp9lux_dx_window.cpp">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">true</ExcludedFromBuild>
-    </ClCompile>
-    <ClCompile Include="..\vp9\decoder\vp9lux_intra_ocl.cpp" />
-    <ClCompile Include="..\vp9\decoder\vp9lux_loopfilter_ocl.cpp" />
-    <ClCompile Include="..\vp9\decoder\vp9lux_ocl.c" />
-    <ClCompile Include="..\vp9\decoder\vp9lux_ocl_mem_amd.cpp" />
-    <ClCompile Include="..\vp9\decoder\vp9lux_ocl_programs.cpp" />
-    <ClCompile Include="..\vp9\decoder\vp9lux_thread.c" />
-    <ClCompile Include="..\vp9\decoder\vp9lux_transform_ocl.cpp" />
-    <ClCompile Include="..\vpx\src\vpx_decoder.c">
-      <ObjectFileName>$(IntDir)vpx_src_vpx_decoder.obj</ObjectFileName>
-    </ClCompile>
-    <ClCompile Include="..\vpx\src\vpx_codec.c">
-      <ObjectFileName>$(IntDir)vpx_src_vpx_codec.obj</ObjectFileName>
-    </ClCompile>
-    <ClCompile Include="..\vpx\src\vpx_image.c">
-      <ObjectFileName>$(IntDir)vpx_src_vpx_image.obj</ObjectFileName>
-    </ClCompile>
-    <ClCompile Include="..\vpx_mem\vpx_mem.c">
-      <ObjectFileName>$(IntDir)vpx_mem_vpx_mem.obj</ObjectFileName>
-    </ClCompile>
-    <ClCompile Include="..\vpx_scale\generic\vpx_scale.c">
-      <ObjectFileName>$(IntDir)vpx_scale_generic_vpx_scale.obj</ObjectFileName>
-    </ClCompile>
-    <ClCompile Include="..\vpx_scale\generic\yv12config.c">
-      <ObjectFileName>$(IntDir)vpx_scale_generic_yv12config.obj</ObjectFileName>
-    </ClCompile>
-    <ClCompile Include="..\vpx_scale\generic\yv12extend.c">
-      <ObjectFileName>$(IntDir)vpx_scale_generic_yv12extend.obj</ObjectFileName>
-    </ClCompile>
-    <ClCompile Include="..\vpx_scale\generic\gen_scalers.c">
-      <ObjectFileName>$(IntDir)vpx_scale_generic_gen_scalers.obj</ObjectFileName>
-    </ClCompile>
-    <ClCompile Include="..\vpx_scale\vpx_scale_rtcd.c" />
-    <ClCompile Include="..\vp9\common\vp9_blockd.c">
-      <ObjectFileName>$(IntDir)vp9_common_vp9_blockd.obj</ObjectFileName>
-    </ClCompile>
-    <ClCompile Include="..\vp9\common\vp9_debugmodes.c">
-      <ObjectFileName>$(IntDir)vp9_common_vp9_debugmodes.obj</ObjectFileName>
-    </ClCompile>
-    <ClCompile Include="..\vp9\common\vp9_entropy.c">
-      <ObjectFileName>$(IntDir)vp9_common_vp9_entropy.obj</ObjectFileName>
-    </ClCompile>
-    <ClCompile Include="..\vp9\common\vp9_entropymode.c">
-      <ObjectFileName>$(IntDir)vp9_common_vp9_entropymode.obj</ObjectFileName>
-    </ClCompile>
-    <ClCompile Include="..\vp9\common\vp9_entropymv.c">
-      <ObjectFileName>$(IntDir)vp9_common_vp9_entropymv.obj</ObjectFileName>
-    </ClCompile>
-    <ClCompile Include="..\vp9\common\vp9_pred_common.c">
-      <ObjectFileName>$(IntDir)vp9_common_vp9_pred_common.obj</ObjectFileName>
-    </ClCompile>
-    <ClCompile Include="..\vp9\common\vp9_prob.c">
-      <ObjectFileName>$(IntDir)vp9_common_vp9_prob.obj</ObjectFileName>
-    </ClCompile>
-    <ClCompile Include="..\vp9\common\vp9_rtcd.c">
-      <ObjectFileName>$(IntDir)vp9_common_vp9_rtcd.obj</ObjectFileName>
-    </ClCompile>
-    <ClCompile Include="..\vp9\common\vp9_scale.c">
-      <ObjectFileName>$(IntDir)vp9_common_vp9_scale.obj</ObjectFileName>
-    </ClCompile>
-    <ClCompile Include="..\vp9\common\vp9_seg_common.c">
-      <ObjectFileName>$(IntDir)vp9_common_vp9_seg_common.obj</ObjectFileName>
-    </ClCompile>
-    <ClCompile Include="..\vp9\common\vp9_thread.c">
-      <ObjectFileName>$(IntDir)vp9_common_vp9_thread.obj</ObjectFileName>
-    </ClCompile>
-    <ClCompile Include="..\vp9\common\vp9_tile_common.c">
-      <ObjectFileName>$(IntDir)vp9_common_vp9_tile_common.obj</ObjectFileName>
-    </ClCompile>
-    <ClCompile Include="..\vp9\common\vp9_loopfilter.c">
-      <ObjectFileName>$(IntDir)vp9_common_vp9_loopfilter.obj</ObjectFileName>
-    </ClCompile>
-    <ClCompile Include="..\vp9\common\vp9_mvref_common.c">
-      <ObjectFileName>$(IntDir)vp9_common_vp9_mvref_common.obj</ObjectFileName>
-    </ClCompile>
-    <ClCompile Include="..\vp9\common\vp9_quant_common.c">
-      <ObjectFileName>$(IntDir)vp9_common_vp9_quant_common.obj</ObjectFileName>
-    </ClCompile>
-    <ClCompile Include="..\vp9\common\vp9_common_data.c">
-      <ObjectFileName>$(IntDir)vp9_common_vp9_common_data.obj</ObjectFileName>
-    </ClCompile>
-    <ClCompile Include="..\vp9\common\vp9_scan.c">
-      <ObjectFileName>$(IntDir)vp9_common_vp9_scan.obj</ObjectFileName>
-    </ClCompile>
-    <ClCompile Include="..\vp9\vp9_dx_iface.c">
-      <ObjectFileName>$(IntDir)vp9_vp9_dx_iface.obj</ObjectFileName>
-    </ClCompile>
-    <ClCompile Include="..\vp9\decoder\vp9_decodemv.c">
-      <ObjectFileName>$(IntDir)vp9_decoder_vp9_decodemv.obj</ObjectFileName>
-    </ClCompile>
-    <ClCompile Include="..\vp9\decoder\vp9_decodeframe.c">
-      <ObjectFileName>$(IntDir)vp9_decoder_vp9_decodeframe.obj</ObjectFileName>
-    </ClCompile>
-    <ClCompile Include="..\vp9\decoder\vp9_detokenize.c">
-      <ObjectFileName>$(IntDir)vp9_decoder_vp9_detokenize.obj</ObjectFileName>
-    </ClCompile>
-    <ClCompile Include="..\vp9\decoder\vp9_reader.c">
-      <ObjectFileName>$(IntDir)vp9_decoder_vp9_reader.obj</ObjectFileName>
-    </ClCompile>
-    <ClCompile Include="..\vp9\decoder\vp9_read_bit_buffer.c">
-      <ObjectFileName>$(IntDir)vp9_decoder_vp9_read_bit_buffer.obj</ObjectFileName>
-    </ClCompile>
-    <ClCompile Include="..\vp9\decoder\vp9_decoder.c">
-      <ObjectFileName>$(IntDir)vp9_decoder_vp9_decoder.obj</ObjectFileName>
-    </ClCompile>
-    <ClCompile Include="..\vp9\decoder\vp9_dsubexp.c">
-      <ObjectFileName>$(IntDir)vp9_decoder_vp9_dsubexp.obj</ObjectFileName>
-    </ClCompile>
-    <None Include="..\vpx.def" />
-  </ItemGroup>
-  <ItemGroup>
-    <ClInclude Include="..\vp9\common\vp9lux_log.h" />
-    <ClInclude Include="..\vp9\decoder\interop\vp9lux_cl_wrapper.h" />
-    <ClInclude Include="..\vp9\decoder\interop\vp9lux_interop.h" />
-    <ClInclude Include="..\vp9\decoder\kernels\pssl_common.h" />
-    <ClInclude Include="..\vp9\decoder\kernels\pssl_idct_base.h" />
-    <ClInclude Include="..\vp9\decoder\kernels\pssl_inter_common.h" />
-    <ClInclude Include="..\vp9\decoder\vp9lux_alt_inter_ocl.h" />
-    <ClInclude Include="..\vp9\decoder\vp9lux_decode_block.h" />
-    <ClInclude Include="..\vp9\decoder\vp9lux_dx_compute.h" />
-    <ClInclude Include="..\vp9\decoder\vp9lux_dx_window.h" />
-    <ClInclude Include="..\vp9\decoder\vp9lux_intra_modes_table_binary.h" />
-    <ClInclude Include="..\vp9\decoder\vp9lux_intra_ocl.h" />
-    <ClInclude Include="..\vp9\decoder\vp9lux_loopfilter_ocl.h" />
-    <ClInclude Include="..\vp9\decoder\vp9lux_ocl.h" />
-    <ClInclude Include="..\vp9\decoder\vp9lux_ocl_binary.h" />
-    <ClInclude Include="..\vp9\decoder\vp9lux_ocl_programs.h" />
-    <ClInclude Include="..\vp9\decoder\vp9lux_thread.h" />
-    <ClInclude Include="..\vp9\decoder\vp9lux_transform_ocl.h" />
-    <ClInclude Include="..\vp9\decoder\vp9lux_types.h" />
-    <ClInclude Include="..\vpx\vpx_decoder.h" />
-    <ClInclude Include="..\vpx\internal\vpx_codec_internal.h" />
-    <ClInclude Include="..\vpx\vpx_codec.h" />
-    <ClInclude Include="..\vpx\vpx_frame_buffer.h" />
-    <ClInclude Include="..\vpx\vpx_hw_image.h" />
-    <ClInclude Include="..\vpx\vpx_image.h" />
-    <ClInclude Include="..\vpx\vpx_integer.h" />
-    <ClInclude Include="..\vpx_mem\vpx_mem.h" />
-    <ClInclude Include="..\vpx_mem\include\vpx_mem_intrnl.h" />
-    <ClInclude Include="..\vpx_scale\yv12config.h" />
-    <ClInclude Include="..\vpx_scale\vpx_scale.h" />
-    <ClInclude Include="..\vpx_ports\asm_offsets.h" />
-    <ClInclude Include="..\vpx_ports\mem.h" />
-    <ClInclude Include="..\vpx_ports\vpx_timer.h" />
-    <ClInclude Include="..\vpx_ports\x86.h" />
-    <ClInclude Include="..\vp9\vp9_iface_common.h" />
-    <ClInclude Include="..\vp9\common\vp9_ppflags.h" />
-    <ClInclude Include="..\vp9\common\vp9_filter.h" />
-    <ClInclude Include="..\vp9\common\vp9_frame_buffers.h" />
-    <ClInclude Include="..\vp9\common\vp9_blockd.h" />
-    <ClInclude Include="..\vp9\common\vp9_common.h" />
-    <ClInclude Include="..\vp9\common\vp9_entropy.h" />
-    <ClInclude Include="..\vp9\common\vp9_entropymode.h" />
-    <ClInclude Include="..\vp9\common\vp9_entropymv.h" />
-    <ClInclude Include="..\vp9\common\vp9_enums.h" />
-    <ClInclude Include="..\vp9\common\vp9_loopfilter.h" />
-    <ClInclude Include="..\vp9\common\vp9_mv.h" />
-    <ClInclude Include="..\vp9\common\vp9_pred_common.h" />
-    <ClInclude Include="..\vp9\common\vp9_prob.h" />
-    <ClInclude Include="..\vp9\common\vp9_quant_common.h" />
-    <ClInclude Include="..\vp9\common\vp9_scale.h" />
-    <ClInclude Include="..\vp9\common\vp9_seg_common.h" />
-    <ClInclude Include="..\vp9\common\vp9_systemdependent.h" />
-    <ClInclude Include="..\vp9\common\vp9_textblit.h" />
-    <ClInclude Include="..\vp9\common\vp9_thread.h" />
-    <ClInclude Include="..\vp9\common\vp9_tile_common.h" />
-    <ClInclude Include="..\vp9\common\vp9_mvref_common.h" />
-    <ClInclude Include="..\vp9\common\vp9_common_data.h" />
-    <ClInclude Include="..\vp9\common\vp9_scan.h" />
-    <ClInclude Include="..\vp9\decoder\vp9_decodeframe.h" />
-    <ClInclude Include="..\vp9\decoder\vp9_dthread.h" />
-    <ClInclude Include="..\vp9\decoder\vp9_reader.h" />
-    <ClInclude Include="..\vp9\decoder\vp9_read_bit_buffer.h" />
-    <ClInclude Include="..\vp9\decoder\vp9_decodemv.h" />
-    <ClInclude Include="..\vp9\decoder\vp9_detokenize.h" />
-    <ClInclude Include="..\vp9\decoder\vp9_decoder.h" />
-    <ClInclude Include="..\vp9\decoder\vp9_dsubexp.h" />
-    <ClInclude Include="..\vpx_ports\emmintrin_compat.h" />
-    <ClInclude Include="..\vpx_ports\mem_ops.h" />
-    <ClInclude Include="..\vpx_ports\mem_ops_aligned.h" />
-    <ClInclude Include="..\vpx_ports\vpx_once.h" />
-    <ClInclude Include="..\vp9_rtcd.h" />
-    <ClInclude Include="vpx_scale_rtcd.h" />
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="..\vpx\vpx_codec.mk" />
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="..\vp9\decoder\kernels\ps.hlsl">
-      <FileType>Document</FileType>
-    </None>
-    <None Include="..\vp9\decoder\kernels\vs.hlsl">
-      <FileType>Document</FileType>
-    </None>
-  </ItemGroup>
-  <ItemGroup>
-    <Compile_PSSL_To_Header Include="..\vp9\decoder\kernels\idct_16x16full_c.pssl">
-      <FileType>Document</FileType>
-    </Compile_PSSL_To_Header>
-    <Compile_PSSL_To_Header Include="..\vp9\decoder\kernels\idct_32x32full_c.pssl">
-      <FileType>Document</FileType>
-    </Compile_PSSL_To_Header>
-    <Compile_PSSL_To_Header Include="..\vp9\decoder\kernels\idct_4x4full_c.pssl">
-      <FileType>Document</FileType>
-    </Compile_PSSL_To_Header>
-    <Compile_PSSL_To_Header Include="..\vp9\decoder\kernels\idct_8x8full_c.pssl">
-      <FileType>Document</FileType>
-    </Compile_PSSL_To_Header>
-  </ItemGroup>
-  <ItemGroup>
-    <Compile_PSSL_To_Header Include="..\vp9\decoder\kernels\inter_compound_c.pssl">
-      <FileType>Document</FileType>
-    </Compile_PSSL_To_Header>
-    <Compile_PSSL_To_Header Include="..\vp9\decoder\kernels\inter_main_c.pssl">
-      <FileType>Document</FileType>
-    </Compile_PSSL_To_Header>
-    <Compile_PSSL_To_Header Include="..\vp9\decoder\kernels\intra_borders_c.pssl">
-      <FileType>Document</FileType>
-    </Compile_PSSL_To_Header>
-    <Compile_PSSL_To_Header Include="..\vp9\decoder\kernels\intra_main_c.pssl">
-      <FileType>Document</FileType>
-    </Compile_PSSL_To_Header>
-    <Compile_PSSL_To_Header Include="..\vp9\decoder\kernels\lf_c.pssl">
-      <FileType>Document</FileType>
-    </Compile_PSSL_To_Header>
-  </ItemGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
-  <Import Project="$(SolutionDir)\SceGnm.targets" Condition="Exists('$(SolutionDir)\SceGnm.Development.props')" />
-  <Import Project="$(SCE_ORBIS_SDK_DIR)\host_tools\msbuild\SceGnm.targets" Condition="!Exists('$(SolutionDir)\SceGnm.Development.props')" />
-  <ImportGroup Label="ExtensionTargets" />
-</Project>
\ No newline at end of file
diff --git a/src/third_party/libvpx_gpu/vp9-dec-core/build/vpx-dec-core.vcxproj b/src/third_party/libvpx_gpu/vp9-dec-core/build/vpx-dec-core.vcxproj
deleted file mode 100644
index 0e81043..0000000
--- a/src/third_party/libvpx_gpu/vp9-dec-core/build/vpx-dec-core.vcxproj
+++ /dev/null
@@ -1,677 +0,0 @@
-﻿<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <ItemGroup Label="ProjectConfigurations">
-    <ProjectConfiguration Include="Debug|ORBIS">
-      <Configuration>Debug</Configuration>
-      <Platform>ORBIS</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Debug|Win32">
-      <Configuration>Debug</Configuration>
-      <Platform>Win32</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Debug|x64">
-      <Configuration>Debug</Configuration>
-      <Platform>x64</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Release|ORBIS">
-      <Configuration>Release</Configuration>
-      <Platform>ORBIS</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Release|Win32">
-      <Configuration>Release</Configuration>
-      <Platform>Win32</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Release|x64">
-      <Configuration>Release</Configuration>
-      <Platform>x64</Platform>
-    </ProjectConfiguration>
-  </ItemGroup>
-  <PropertyGroup Label="Globals">
-    <ProjectGuid>{DCE19DAF-69AC-46DB-B14A-39F0FAA5DB74}</ProjectGuid>
-    <RootNamespace>vpx</RootNamespace>
-    <Keyword>ManagedCProj</Keyword>
-    <ProjectName>vp9-dec-core</ProjectName>
-  </PropertyGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
-    <ConfigurationType>StaticLibrary</ConfigurationType>
-    <CharacterSet>Unicode</CharacterSet>
-    <WholeProgramOptimization>true</WholeProgramOptimization>
-    <PlatformToolset>v140</PlatformToolset>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
-    <ConfigurationType>StaticLibrary</ConfigurationType>
-    <CharacterSet>Unicode</CharacterSet>
-    <WholeProgramOptimization>true</WholeProgramOptimization>
-    <PlatformToolset>v140</PlatformToolset>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'" Label="Configuration">
-    <ConfigurationType>StaticLibrary</ConfigurationType>
-    <CharacterSet>Unicode</CharacterSet>
-    <WholeProgramOptimization>true</WholeProgramOptimization>
-    <PlatformToolset>v140</PlatformToolset>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
-    <ConfigurationType>StaticLibrary</ConfigurationType>
-    <CharacterSet>Unicode</CharacterSet>
-    <PlatformToolset>v140</PlatformToolset>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
-    <ConfigurationType>StaticLibrary</ConfigurationType>
-    <CharacterSet>Unicode</CharacterSet>
-    <PlatformToolset>v140</PlatformToolset>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'" Label="Configuration">
-    <ConfigurationType>StaticLibrary</ConfigurationType>
-    <CharacterSet>Unicode</CharacterSet>
-    <PlatformToolset>Clang</PlatformToolset>
-  </PropertyGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
-  <ImportGroup Label="ExtensionSettings">
-    <Import Project="$(ProgramFiles)\SCE\ORBIS SDKs\3.500\host_tools\msbuild\SceShader.props" />
-    <Import Project="$(VCTargetsPath)\BuildCustomizations\OrbisWavePsslc.props" />
-  </ImportGroup>
-  <ImportGroup Label="PropertySheets">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-  </ImportGroup>
-  <PropertyGroup Label="UserMacros" />
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
-    <OutDir>$(SolutionDir)..\lib\msvs10\$(Configuration)\win$(PlatformArchitecture)\</OutDir>
-    <IntDir>$(SolutionDir)..\obj\msvs10\$(ProjectName)\$(Configuration)\win$(PlatformArchitecture)\</IntDir>
-    <TargetName>$(ProjectName)$(PlatformArchitecture)</TargetName>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-    <OutDir>$(SolutionDir)..\lib\msvs10\$(Configuration)\win$(PlatformArchitecture)\</OutDir>
-    <IntDir>$(SolutionDir)..\obj\msvs10\$(ProjectName)\$(Configuration)\win$(PlatformArchitecture)\</IntDir>
-    <TargetName>$(ProjectName)$(PlatformArchitecture)</TargetName>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">
-    <TargetName>$(ProjectName)</TargetName>
-    <GnmUseGnm>true</GnmUseGnm>
-    <GnmUseGnmx>true</GnmUseGnmx>
-    <GnmUseAddressLibrary>true</GnmUseAddressLibrary>
-    <GnmUseLibShaderBinary>true</GnmUseLibShaderBinary>
-    <GnmUseGNF>true</GnmUseGNF>
-    <GnmUseTextureTool>false</GnmUseTextureTool>
-    <GnmUsePM4Dump>true</GnmUsePM4Dump>
-    <GnmUseSampleCommon>false</GnmUseSampleCommon>
-    <GnmProjectType>SampleLib</GnmProjectType>
-    <OutDir>$(SolutionDir)lib\$(Configuration)\</OutDir>
-    <IntDir>$(SolutionDir)obj\$(ProjectName)\$(Configuration)\</IntDir>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
-    <OutDir>$(SolutionDir)..\lib\msvs10\$(Configuration)\win$(PlatformArchitecture)\</OutDir>
-    <IntDir>$(SolutionDir)..\obj\msvs10\$(ProjectName)\$(Configuration)\win$(PlatformArchitecture)\</IntDir>
-    <TargetName>$(ProjectName)$(PlatformArchitecture)</TargetName>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
-    <OutDir>$(SolutionDir)..\lib\msvs10\$(Configuration)\win$(PlatformArchitecture)\</OutDir>
-    <IntDir>$(SolutionDir)..\obj\msvs10\$(ProjectName)\$(Configuration)\win$(PlatformArchitecture)\</IntDir>
-    <TargetName>$(ProjectName)$(PlatformArchitecture)</TargetName>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">
-    <TargetName>$(ProjectName)</TargetName>
-    <OutDir>$(SolutionDir)lib\$(Configuration)\</OutDir>
-    <IntDir>$(SolutionDir)obj\$(ProjectName)\$(Configuration)\</IntDir>
-  </PropertyGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
-    <PreBuildEvent>
-      <Command>cd ./script
-call amd_build.bat</Command>
-    </PreBuildEvent>
-    <ClCompile>
-      <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>.;..;$(SolutionDir)/../../Thirdparty/amd/mcl/1.6/amdmcl/inc;$(ProjectDir)build_$(Platform);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>WIN32;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
-      <WarningLevel>Level3</WarningLevel>
-    </ClCompile>
-    <Lib>
-      <AdditionalLibraryDirectories>
-      </AdditionalLibraryDirectories>
-      <IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
-    </Lib>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-    <PreBuildEvent>
-      <Command>
-      </Command>
-    </PreBuildEvent>
-    <ClCompile>
-      <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>.;..;$(SolutionDir)/../../Thirdparty/amd/mcl/1.6/amdmcl/inc;$(ProjectDir)build_$(Platform);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>WIN32;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
-      <WarningLevel>Level3</WarningLevel>
-    </ClCompile>
-    <Lib>
-      <AdditionalLibraryDirectories>
-      </AdditionalLibraryDirectories>
-      <IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
-    </Lib>
-    <ProjectReference>
-      <LinkLibraryDependencies>true</LinkLibraryDependencies>
-    </ProjectReference>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">
-    <PreBuildEvent>
-      <Command>
-      </Command>
-    </PreBuildEvent>
-    <ClCompile>
-      <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>.;..;$(SolutionDir)../Thirdparty/amd/mcl/1.6/amdmcl/inc;$(ProjectDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>LUXOFT_VP9_ENABLE_SCALING;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
-      <WarningLevel>Level3</WarningLevel>
-      <GenerateDebugInformation>true</GenerateDebugInformation>
-    </ClCompile>
-    <Lib>
-      <AdditionalLibraryDirectories>
-      </AdditionalLibraryDirectories>
-      <IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
-    </Lib>
-    <ProjectReference>
-      <LinkLibraryDependencies>true</LinkLibraryDependencies>
-    </ProjectReference>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
-    <PreBuildEvent>
-      <Command>cd ./script
-call amd_build.bat</Command>
-    </PreBuildEvent>
-    <ClCompile>
-      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
-      <Optimization>MaxSpeed</Optimization>
-      <AdditionalIncludeDirectories>.;..;$(SolutionDir)/../../Thirdparty/amd/mcl/1.6/amdmcl/inc;$(ProjectDir)build_$(Platform);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>WIN32;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
-      <WarningLevel>Level3</WarningLevel>
-      <WholeProgramOptimization>true</WholeProgramOptimization>
-    </ClCompile>
-    <Lib>
-      <AdditionalLibraryDirectories>
-      </AdditionalLibraryDirectories>
-      <IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
-    </Lib>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
-    <PreBuildEvent>
-      <Command>cd ./script
-call amd_build.bat</Command>
-    </PreBuildEvent>
-    <ClCompile>
-      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
-      <Optimization>MaxSpeed</Optimization>
-      <AdditionalIncludeDirectories>.;..;$(SolutionDir)/../../Thirdparty/amd/mcl/1.6/amdmcl/inc;$(ProjectDir)build_$(Platform);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>WIN32;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
-      <WarningLevel>Level3</WarningLevel>
-    </ClCompile>
-    <Lib>
-      <AdditionalLibraryDirectories>$(AMDAPPSDKROOT)\lib\x86_64;</AdditionalLibraryDirectories>
-      <IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
-    </Lib>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">
-    <PreBuildEvent>
-      <Command>
-      </Command>
-    </PreBuildEvent>
-    <ClCompile>
-      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
-      <Optimization>MaxSpeed</Optimization>
-      <AdditionalIncludeDirectories>.;..;$(SolutionDir)../Thirdparty/amd/mcl/1.6/amdmcl/inc;$(ProjectDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>LUXOFT_VP9_ENABLE_SCALING;WIN32;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
-      <WarningLevel>Level3</WarningLevel>
-      <OptimizationLevel>Level3</OptimizationLevel>
-      <GenerateDebugInformation>true</GenerateDebugInformation>
-      <LinkTimeOptimization>true</LinkTimeOptimization>
-      <NoStrictAliasing>true</NoStrictAliasing>
-      <UnrollLoops>false</UnrollLoops>
-    </ClCompile>
-    <Lib>
-      <AdditionalLibraryDirectories>$(AMDAPPSDKROOT)\lib\x86_64;</AdditionalLibraryDirectories>
-      <IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
-    </Lib>
-  </ItemDefinitionGroup>
-  <ItemGroup>
-    <ClCompile Include="..\vp9\common\vp9_scale.c" />
-    <ClCompile Include="..\vp9\common\vp9_scan.c" />
-    <ClCompile Include="..\vp9\decoder\vp9lux_inter.cpp" />
-    <ClCompile Include="..\vp9\decoder\vp9lux_decode_block.cpp" />
-    <ClCompile Include="..\vp9\decoder\vp9lux_intra.cpp" />
-    <ClCompile Include="..\vp9\decoder\vp9lux_linear_allocator.cpp" />
-    <ClCompile Include="..\vp9\decoder\vp9lux_loopfilter.cpp" />
-    <ClCompile Include="..\vp9\decoder\vp9lux_dec.cpp">
-      <OptimizationLevel Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">Levels</OptimizationLevel>
-    </ClCompile>
-    <ClCompile Include="..\vp9\decoder\vp9lux_gpu_mem_ps4.cpp">
-      <OptimizationLevel Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">Levels</OptimizationLevel>
-      <LinkTimeOptimization Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">false</LinkTimeOptimization>
-    </ClCompile>
-    <ClCompile Include="..\vp9\decoder\vp9lux_gpu_programs.cpp" />
-    <ClCompile Include="..\vp9\decoder\vp9lux_thread.c" />
-    <ClCompile Include="..\vp9\decoder\vp9lux_transform.cpp" />
-    <ClCompile Include="..\vpx\src\vpx_decoder.c">
-      <ObjectFileName>$(IntDir)vpx_src_vpx_decoder.obj</ObjectFileName>
-    </ClCompile>
-    <ClCompile Include="..\vpx\src\vpx_codec.c">
-      <ObjectFileName>$(IntDir)vpx_src_vpx_codec.obj</ObjectFileName>
-      <OptimizationLevel Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">Level3</OptimizationLevel>
-      <LinkTimeOptimization Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">true</LinkTimeOptimization>
-    </ClCompile>
-    <ClCompile Include="..\vpx\src\vpx_image.c">
-      <ObjectFileName>$(IntDir)vpx_src_vpx_image.obj</ObjectFileName>
-    </ClCompile>
-    <ClCompile Include="..\vpx_mem\vpx_mem.c">
-      <ObjectFileName>$(IntDir)vpx_mem_vpx_mem.obj</ObjectFileName>
-    </ClCompile>
-    <ClCompile Include="..\vpx_scale\generic\vpx_scale.c">
-      <ObjectFileName>$(IntDir)vpx_scale_generic_vpx_scale.obj</ObjectFileName>
-    </ClCompile>
-    <ClCompile Include="..\vpx_scale\generic\yv12config.c">
-      <ObjectFileName>$(IntDir)vpx_scale_generic_yv12config.obj</ObjectFileName>
-      <OptimizationLevel Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">Level3</OptimizationLevel>
-      <LinkTimeOptimization Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">true</LinkTimeOptimization>
-    </ClCompile>
-    <ClCompile Include="..\vpx_scale\generic\yv12extend.c">
-      <ObjectFileName>$(IntDir)vpx_scale_generic_yv12extend.obj</ObjectFileName>
-      <OptimizationLevel Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">Level3</OptimizationLevel>
-      <LinkTimeOptimization Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">true</LinkTimeOptimization>
-    </ClCompile>
-    <ClCompile Include="..\vpx_scale\generic\gen_scalers.c">
-      <ObjectFileName>$(IntDir)vpx_scale_generic_gen_scalers.obj</ObjectFileName>
-    </ClCompile>
-    <ClCompile Include="..\vpx_scale\vpx_scale_rtcd.c">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">false</ExcludedFromBuild>
-    </ClCompile>
-    <ClCompile Include="..\vp9\common\vp9_blockd.c">
-      <ObjectFileName>$(IntDir)vp9_common_vp9_blockd.obj</ObjectFileName>
-    </ClCompile>
-    <ClCompile Include="..\vp9\common\vp9_debugmodes.c">
-      <ObjectFileName>$(IntDir)vp9_common_vp9_debugmodes.obj</ObjectFileName>
-    </ClCompile>
-    <ClCompile Include="..\vp9\common\vp9_entropy.c">
-      <ObjectFileName>$(IntDir)vp9_common_vp9_entropy.obj</ObjectFileName>
-      <OptimizationLevel Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">Level3</OptimizationLevel>
-    </ClCompile>
-    <ClCompile Include="..\vp9\common\vp9_entropymode.c">
-      <ObjectFileName>$(IntDir)vp9_common_vp9_entropymode.obj</ObjectFileName>
-      <OptimizationLevel Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">Level3</OptimizationLevel>
-    </ClCompile>
-    <ClCompile Include="..\vp9\common\vp9_entropymv.c">
-      <ObjectFileName>$(IntDir)vp9_common_vp9_entropymv.obj</ObjectFileName>
-      <OptimizationLevel Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">Level3</OptimizationLevel>
-    </ClCompile>
-    <ClCompile Include="..\vp9\common\vp9_pred_common.c">
-      <ObjectFileName>$(IntDir)vp9_common_vp9_pred_common.obj</ObjectFileName>
-    </ClCompile>
-    <ClCompile Include="..\vp9\common\vp9_prob.c">
-      <ObjectFileName>$(IntDir)vp9_common_vp9_prob.obj</ObjectFileName>
-      <OptimizationLevel Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">Level3</OptimizationLevel>
-    </ClCompile>
-    <ClCompile Include="..\vp9\common\vp9_seg_common.c">
-      <ObjectFileName>$(IntDir)vp9_common_vp9_seg_common.obj</ObjectFileName>
-    </ClCompile>
-    <ClCompile Include="..\vp9\common\vp9_thread.c">
-      <ObjectFileName>$(IntDir)vp9_common_vp9_thread.obj</ObjectFileName>
-    </ClCompile>
-    <ClCompile Include="..\vp9\common\vp9_tile_common.c">
-      <ObjectFileName>$(IntDir)vp9_common_vp9_tile_common.obj</ObjectFileName>
-    </ClCompile>
-    <ClCompile Include="..\vp9\common\vp9_loopfilter.c">
-      <ObjectFileName>$(IntDir)vp9_common_vp9_loopfilter.obj</ObjectFileName>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">false</ExcludedFromBuild>
-    </ClCompile>
-    <ClCompile Include="..\vp9\common\vp9_mvref_common.c">
-      <ObjectFileName>$(IntDir)vp9_common_vp9_mvref_common.obj</ObjectFileName>
-      <OptimizationLevel Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">Levels</OptimizationLevel>
-    </ClCompile>
-    <ClCompile Include="..\vp9\common\vp9_quant_common.c">
-      <ObjectFileName>$(IntDir)vp9_common_vp9_quant_common.obj</ObjectFileName>
-    </ClCompile>
-    <ClCompile Include="..\vp9\common\vp9_common_data.c">
-      <ObjectFileName>$(IntDir)vp9_common_vp9_common_data.obj</ObjectFileName>
-    </ClCompile>
-    <ClCompile Include="..\vp9\vp9_dx_iface.c">
-      <ObjectFileName>$(IntDir)vp9_vp9_dx_iface.obj</ObjectFileName>
-      <OptimizationLevel Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">Level3</OptimizationLevel>
-      <LinkTimeOptimization Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">true</LinkTimeOptimization>
-    </ClCompile>
-    <ClCompile Include="..\vp9\decoder\vp9_decodemv.c">
-      <ObjectFileName>$(IntDir)vp9_decoder_vp9_decodemv.obj</ObjectFileName>
-      <OptimizationLevel Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">Levels</OptimizationLevel>
-      <AdditionalOptions Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">-Wno-unused-function %(AdditionalOptions)</AdditionalOptions>
-    </ClCompile>
-    <ClCompile Include="..\vp9\decoder\vp9_decodeframe.c">
-      <ObjectFileName>$(IntDir)vp9_decoder_vp9_decodeframe.obj</ObjectFileName>
-      <OptimizationLevel Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">Level3</OptimizationLevel>
-    </ClCompile>
-    <ClCompile Include="..\vp9\decoder\vp9_detokenize.c">
-      <ObjectFileName>$(IntDir)vp9_decoder_vp9_detokenize.obj</ObjectFileName>
-      <OptimizationLevel Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">Level3</OptimizationLevel>
-      <UnrollLoops Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">false</UnrollLoops>
-    </ClCompile>
-    <ClCompile Include="..\vp9\decoder\vp9_reader.c">
-      <ObjectFileName>$(IntDir)vp9_decoder_vp9_reader.obj</ObjectFileName>
-    </ClCompile>
-    <ClCompile Include="..\vp9\decoder\vp9_read_bit_buffer.c">
-      <ObjectFileName>$(IntDir)vp9_decoder_vp9_read_bit_buffer.obj</ObjectFileName>
-    </ClCompile>
-    <ClCompile Include="..\vp9\decoder\vp9_decoder.c">
-      <ObjectFileName>$(IntDir)vp9_decoder_vp9_decoder.obj</ObjectFileName>
-    </ClCompile>
-    <ClCompile Include="..\vp9\decoder\vp9_dsubexp.c">
-      <ObjectFileName>$(IntDir)vp9_decoder_vp9_dsubexp.obj</ObjectFileName>
-      <OptimizationLevel Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">Level3</OptimizationLevel>
-    </ClCompile>
-    <None Include="..\vpx.def" />
-  </ItemGroup>
-  <ItemGroup>
-    <ClInclude Include="..\vp9\common\vp9lux_log.h" />
-    <ClInclude Include="..\vp9\common\vp9_onyxc_int.h" />
-    <ClInclude Include="..\vp9\common\vp9_scale.h" />
-    <ClInclude Include="..\vp9\common\vp9_scan.h" />
-    <ClInclude Include="..\vp9\decoder\kernels\pssl_common.h" />
-    <ClInclude Include="..\vp9\decoder\kernels\pssl_genblock_common.h" />
-    <ClInclude Include="..\vp9\decoder\kernels\pssl_idct_base.h" />
-    <ClInclude Include="..\vp9\decoder\kernels\pssl_inter_common.h" />
-    <ClInclude Include="..\vp9\decoder\kernels\pssl_intra_common.h" />
-    <ClInclude Include="..\vp9\decoder\kernels\pssl_lf_common.h" />
-    <ClInclude Include="..\vp9\decoder\vp9lux_inter.h" />
-    <ClInclude Include="..\vp9\decoder\vp9lux_decode_block.h" />
-    <ClInclude Include="..\vp9\decoder\vp9lux_intra_modes_table_binary.h" />
-    <ClInclude Include="..\vp9\decoder\vp9lux_intra.h" />
-    <ClInclude Include="..\vp9\decoder\vp9lux_linear_allocator.h" />
-    <ClInclude Include="..\vp9\decoder\vp9lux_loopfilter.h" />
-    <ClInclude Include="..\vp9\decoder\vp9lux_dec.h" />
-    <ClInclude Include="..\vp9\decoder\vp9lux_gpu_programs.h" />
-    <ClInclude Include="..\vp9\decoder\vp9lux_thread.h" />
-    <ClInclude Include="..\vp9\decoder\vp9lux_transform.h" />
-    <ClInclude Include="..\vp9\decoder\vp9lux_types.h" />
-    <ClInclude Include="..\vpx\vpx_decoder.h" />
-    <ClInclude Include="..\vpx\internal\vpx_codec_internal.h" />
-    <ClInclude Include="..\vpx\vpx_codec.h" />
-    <ClInclude Include="..\vpx\vpx_frame_buffer.h" />
-    <ClInclude Include="..\vpx\vpx_hw_image.h" />
-    <ClInclude Include="..\vpx\vpx_image.h" />
-    <ClInclude Include="..\vpx\vpx_integer.h" />
-    <ClInclude Include="..\vpx_mem\vpx_mem.h" />
-    <ClInclude Include="..\vpx_mem\include\vpx_mem_intrnl.h" />
-    <ClInclude Include="..\vpx_scale\yv12config.h" />
-    <ClInclude Include="..\vpx_scale\vpx_scale.h" />
-    <ClInclude Include="..\vpx_ports\asm_offsets.h" />
-    <ClInclude Include="..\vpx_ports\mem.h" />
-    <ClInclude Include="..\vpx_ports\vpx_timer.h" />
-    <ClInclude Include="..\vpx_ports\x86.h" />
-    <ClInclude Include="..\vp9\common\vp9_ppflags.h" />
-    <ClInclude Include="..\vp9\common\vp9_filter.h" />
-    <ClInclude Include="..\vp9\common\vp9_frame_buffers.h" />
-    <ClInclude Include="..\vp9\common\vp9_blockd.h" />
-    <ClInclude Include="..\vp9\common\vp9_common.h" />
-    <ClInclude Include="..\vp9\common\vp9_entropy.h" />
-    <ClInclude Include="..\vp9\common\vp9_entropymode.h" />
-    <ClInclude Include="..\vp9\common\vp9_entropymv.h" />
-    <ClInclude Include="..\vp9\common\vp9_enums.h" />
-    <ClInclude Include="..\vp9\common\vp9_loopfilter.h" />
-    <ClInclude Include="..\vp9\common\vp9_mv.h" />
-    <ClInclude Include="..\vp9\common\vp9_pred_common.h" />
-    <ClInclude Include="..\vp9\common\vp9_prob.h" />
-    <ClInclude Include="..\vp9\common\vp9_quant_common.h" />
-    <ClInclude Include="..\vp9\common\vp9_seg_common.h" />
-    <ClInclude Include="..\vp9\common\vp9_systemdependent.h" />
-    <ClInclude Include="..\vp9\common\vp9_textblit.h" />
-    <ClInclude Include="..\vp9\common\vp9_thread.h" />
-    <ClInclude Include="..\vp9\common\vp9_tile_common.h" />
-    <ClInclude Include="..\vp9\common\vp9_mvref_common.h" />
-    <ClInclude Include="..\vp9\common\vp9_common_data.h" />
-    <ClInclude Include="..\vp9\decoder\vp9_decodeframe.h" />
-    <ClInclude Include="..\vp9\decoder\vp9_dthread.h" />
-    <ClInclude Include="..\vp9\decoder\vp9_reader.h" />
-    <ClInclude Include="..\vp9\decoder\vp9_read_bit_buffer.h" />
-    <ClInclude Include="..\vp9\decoder\vp9_decodemv.h" />
-    <ClInclude Include="..\vp9\decoder\vp9_detokenize.h" />
-    <ClInclude Include="..\vp9\decoder\vp9_decoder.h" />
-    <ClInclude Include="..\vp9\decoder\vp9_dsubexp.h" />
-    <ClInclude Include="..\vpx_ports\emmintrin_compat.h" />
-    <ClInclude Include="..\vpx_ports\mem_ops.h" />
-    <ClInclude Include="..\vpx_ports\mem_ops_aligned.h" />
-    <ClInclude Include="vpx_scale_rtcd.h">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">false</ExcludedFromBuild>
-    </ClInclude>
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="..\vpx\vpx_codec.mk" />
-  </ItemGroup>
-  <ItemGroup>
-    <Compile_PSSL_To_Header Include="..\vp9\decoder\kernels\idct_16x16full_c.pssl">
-      <FileType>Document</FileType>
-    </Compile_PSSL_To_Header>
-    <Compile_PSSL_To_Header Include="..\vp9\decoder\kernels\idct_32x32full_c.pssl">
-      <FileType>Document</FileType>
-    </Compile_PSSL_To_Header>
-    <Compile_PSSL_To_Header Include="..\vp9\decoder\kernels\idct_8x8full_c.pssl">
-      <FileType>Document</FileType>
-    </Compile_PSSL_To_Header>
-    <Compile_PSSL_To_Header Include="..\vp9\decoder\kernels\inter_compound_c.pssl">
-      <FileType>Document</FileType>
-    </Compile_PSSL_To_Header>
-    <Compile_PSSL_To_Header Include="..\vp9\decoder\kernels\inter_main_c.pssl">
-      <FileType>Document</FileType>
-    </Compile_PSSL_To_Header>
-    <Compile_PSSL_To_Header Include="..\vp9\decoder\kernels\inter_ext_borders_c.pssl">
-      <FileType>Document</FileType>
-    </Compile_PSSL_To_Header>
-    <Compile_PSSL_To_Header Include="..\vp9\decoder\kernels\intra_main_c.pssl">
-      <FileType>Document</FileType>
-    </Compile_PSSL_To_Header>
-    <Compile_PSSL_To_Header Include="..\vp9\decoder\kernels\lf_c.pssl">
-      <FileType>Document</FileType>
-    </Compile_PSSL_To_Header>
-  </ItemGroup>
-  <ItemGroup>
-    <Compile_PSSL_To_Header Include="..\vp9\decoder\kernels\idct_4x4full_c.pssl">
-      <FileType>Document</FileType>
-    </Compile_PSSL_To_Header>
-  </ItemGroup>
-  <ItemGroup>
-    <Compile_PSSL_To_Header Include="..\vp9\decoder\kernels\idct_4x4lossless_c.pssl">
-      <FileType>Document</FileType>
-    </Compile_PSSL_To_Header>
-  </ItemGroup>
-  <ItemGroup>
-    <Compile_PSSL_To_Header Include="..\vp9\decoder\kernels\inter_resize_c.pssl">
-      <FileType>Document</FileType>
-    </Compile_PSSL_To_Header>
-    <Compile_PSSL_To_Header Include="..\vp9\decoder\kernels\inter_resize_compound_c.pssl">
-      <FileType>Document</FileType>
-    </Compile_PSSL_To_Header>
-  </ItemGroup>
-  <ItemGroup>
-    <Compile_PSSL_To_Header Include="..\vp9\decoder\kernels\inter_main_copy_c.pssl">
-      <FileType>Document</FileType>
-    </Compile_PSSL_To_Header>
-    <Compile_PSSL_To_Header Include="..\vp9\decoder\kernels\inter_main_hor_c.pssl">
-      <FileType>Document</FileType>
-    </Compile_PSSL_To_Header>
-    <Compile_PSSL_To_Header Include="..\vp9\decoder\kernels\inter_main_ver_c.pssl">
-      <FileType>Document</FileType>
-    </Compile_PSSL_To_Header>
-  </ItemGroup>
-  <ItemGroup>
-    <Compile_PSSL_To_Header Include="..\vp9\decoder\kernels\gen_blocks_c.pssl">
-      <FileType>Document</FileType>
-    </Compile_PSSL_To_Header>
-  </ItemGroup>
-  <ItemGroup>
-    <Compile_PSSL_To_Header Include="..\vp9\decoder\kernels\idct_clear_block_c.pssl">
-      <FileType>Document</FileType>
-    </Compile_PSSL_To_Header>
-  </ItemGroup>
-  <ItemGroup>
-    <Compile_PSSL_To_Header Include="..\vp9\decoder\kernels\gen_blocks_lf_c.pssl">
-      <FileType>Document</FileType>
-    </Compile_PSSL_To_Header>
-  </ItemGroup>
-  <ItemGroup>
-    <Compile_PSSL_To_Header Include="..\vp9\decoder\kernels\idct_16x16full_hbd_c.pssl">
-      <Profile Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">sce_cs_orbis</Profile>
-      <Profile Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">sce_cs_orbis</Profile>
-      <Profile Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">sce_cs_orbis</Profile>
-      <Profile Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">sce_cs_orbis</Profile>
-      <Profile Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">sce_cs_orbis</Profile>
-      <Profile Condition="'$(Configuration)|$(Platform)'=='Release|x64'">sce_cs_orbis</Profile>
-      <FileType>Document</FileType>
-    </Compile_PSSL_To_Header>
-    <Compile_PSSL_To_Header Include="..\vp9\decoder\kernels\idct_32x32full_hbd_c.pssl">
-      <Profile Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">sce_cs_orbis</Profile>
-      <Profile Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">sce_cs_orbis</Profile>
-      <Profile Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">sce_cs_orbis</Profile>
-      <Profile Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">sce_cs_orbis</Profile>
-      <Profile Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">sce_cs_orbis</Profile>
-      <Profile Condition="'$(Configuration)|$(Platform)'=='Release|x64'">sce_cs_orbis</Profile>
-      <FileType>Document</FileType>
-    </Compile_PSSL_To_Header>
-    <Compile_PSSL_To_Header Include="..\vp9\decoder\kernels\idct_4x4full_hbd_c.pssl">
-      <Profile Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">sce_cs_orbis</Profile>
-      <Profile Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">sce_cs_orbis</Profile>
-      <Profile Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">sce_cs_orbis</Profile>
-      <Profile Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">sce_cs_orbis</Profile>
-      <Profile Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">sce_cs_orbis</Profile>
-      <Profile Condition="'$(Configuration)|$(Platform)'=='Release|x64'">sce_cs_orbis</Profile>
-      <FileType>Document</FileType>
-    </Compile_PSSL_To_Header>
-    <Compile_PSSL_To_Header Include="..\vp9\decoder\kernels\idct_4x4lossless_hbd_c.pssl">
-      <Profile Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">sce_cs_orbis</Profile>
-      <Profile Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">sce_cs_orbis</Profile>
-      <Profile Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">sce_cs_orbis</Profile>
-      <Profile Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">sce_cs_orbis</Profile>
-      <Profile Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">sce_cs_orbis</Profile>
-      <Profile Condition="'$(Configuration)|$(Platform)'=='Release|x64'">sce_cs_orbis</Profile>
-      <FileType>Document</FileType>
-    </Compile_PSSL_To_Header>
-    <Compile_PSSL_To_Header Include="..\vp9\decoder\kernels\idct_8x8full_hbd_c.pssl">
-      <Profile Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">sce_cs_orbis</Profile>
-      <Profile Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">sce_cs_orbis</Profile>
-      <Profile Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">sce_cs_orbis</Profile>
-      <Profile Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">sce_cs_orbis</Profile>
-      <Profile Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">sce_cs_orbis</Profile>
-      <Profile Condition="'$(Configuration)|$(Platform)'=='Release|x64'">sce_cs_orbis</Profile>
-      <FileType>Document</FileType>
-    </Compile_PSSL_To_Header>
-    <Compile_PSSL_To_Header Include="..\vp9\decoder\kernels\intra_main_hbd_c.pssl">
-      <Profile Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">sce_cs_orbis</Profile>
-      <Profile Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">sce_cs_orbis</Profile>
-      <Profile Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">sce_cs_orbis</Profile>
-      <Profile Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">sce_cs_orbis</Profile>
-      <Profile Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">sce_cs_orbis</Profile>
-      <Profile Condition="'$(Configuration)|$(Platform)'=='Release|x64'">sce_cs_orbis</Profile>
-      <FileType>Document</FileType>
-    </Compile_PSSL_To_Header>
-  </ItemGroup>
-  <ItemGroup>
-    <Compile_PSSL_To_Header Include="..\vp9\decoder\kernels\intra_fillborder_c.pssl">
-      <Profile Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">sce_cs_orbis</Profile>
-      <Profile Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">sce_cs_orbis</Profile>
-      <Profile Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">sce_cs_orbis</Profile>
-      <Profile Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">sce_cs_orbis</Profile>
-      <Profile Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">sce_cs_orbis</Profile>
-      <Profile Condition="'$(Configuration)|$(Platform)'=='Release|x64'">sce_cs_orbis</Profile>
-      <FileType>Document</FileType>
-    </Compile_PSSL_To_Header>
-  </ItemGroup>
-  <ItemGroup>
-    <Compile_PSSL_To_Header Include="..\vp9\decoder\kernels\inter_main_hbd_c.pssl">
-      <Profile Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">sce_cs_orbis</Profile>
-      <Profile Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">sce_cs_orbis</Profile>
-      <Profile Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">sce_cs_orbis</Profile>
-      <Profile Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">sce_cs_orbis</Profile>
-      <Profile Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">sce_cs_orbis</Profile>
-      <Profile Condition="'$(Configuration)|$(Platform)'=='Release|x64'">sce_cs_orbis</Profile>
-      <FileType>Document</FileType>
-    </Compile_PSSL_To_Header>
-  </ItemGroup>
-  <ItemGroup>
-    <Compile_PSSL_To_Header Include="..\vp9\decoder\kernels\inter_compound_hbd_c.pssl">
-      <Profile Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">sce_cs_orbis</Profile>
-      <Profile Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">sce_cs_orbis</Profile>
-      <Profile Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">sce_cs_orbis</Profile>
-      <Profile Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">sce_cs_orbis</Profile>
-      <Profile Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">sce_cs_orbis</Profile>
-      <Profile Condition="'$(Configuration)|$(Platform)'=='Release|x64'">sce_cs_orbis</Profile>
-      <FileType>Document</FileType>
-    </Compile_PSSL_To_Header>
-  </ItemGroup>
-  <ItemGroup>
-    <Compile_PSSL_To_Header Include="..\vp9\decoder\kernels\lf_hbd_c.pssl">
-      <FileType>Document</FileType>
-    </Compile_PSSL_To_Header>
-  </ItemGroup>
-  <ItemGroup>
-    <Compile_PSSL_To_Header Include="..\vp9\decoder\kernels\inter_ext_borders_hbd_c.pssl">
-      <Profile Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">sce_cs_orbis</Profile>
-      <Profile Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">sce_cs_orbis</Profile>
-      <Profile Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">sce_cs_orbis</Profile>
-      <Profile Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">sce_cs_orbis</Profile>
-      <Profile Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">sce_cs_orbis</Profile>
-      <Profile Condition="'$(Configuration)|$(Platform)'=='Release|x64'">sce_cs_orbis</Profile>
-      <FileType>Document</FileType>
-    </Compile_PSSL_To_Header>
-  </ItemGroup>
-  <ItemGroup>
-    <Compile_PSSL_To_Header Include="..\vp9\decoder\kernels\inter_resize_compound_hbd_c.pssl">
-      <Profile Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">sce_cs_orbis</Profile>
-      <Profile Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">sce_cs_orbis</Profile>
-      <Profile Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">sce_cs_orbis</Profile>
-      <Profile Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">sce_cs_orbis</Profile>
-      <Profile Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">sce_cs_orbis</Profile>
-      <Profile Condition="'$(Configuration)|$(Platform)'=='Release|x64'">sce_cs_orbis</Profile>
-      <FileType>Document</FileType>
-    </Compile_PSSL_To_Header>
-    <Compile_PSSL_To_Header Include="..\vp9\decoder\kernels\inter_resize_hbd_c.pssl">
-      <Profile Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">sce_cs_orbis</Profile>
-      <Profile Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">sce_cs_orbis</Profile>
-      <Profile Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">sce_cs_orbis</Profile>
-      <Profile Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">sce_cs_orbis</Profile>
-      <Profile Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">sce_cs_orbis</Profile>
-      <Profile Condition="'$(Configuration)|$(Platform)'=='Release|x64'">sce_cs_orbis</Profile>
-      <FileType>Document</FileType>
-    </Compile_PSSL_To_Header>
-  </ItemGroup>
-  <ItemGroup>
-    <Compile_PSSL_To_Header Include="..\vp9\decoder\kernels\inter_copy_hbd_c.pssl">
-      <Profile Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">sce_cs_orbis</Profile>
-      <Profile Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">sce_cs_orbis</Profile>
-      <Profile Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">sce_cs_orbis</Profile>
-      <Profile Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">sce_cs_orbis</Profile>
-      <Profile Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">sce_cs_orbis</Profile>
-      <Profile Condition="'$(Configuration)|$(Platform)'=='Release|x64'">sce_cs_orbis</Profile>
-      <FileType>Document</FileType>
-    </Compile_PSSL_To_Header>
-    <Compile_PSSL_To_Header Include="..\vp9\decoder\kernels\inter_hor_hbd_c.pssl">
-      <Profile Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">sce_cs_orbis</Profile>
-      <Profile Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">sce_cs_orbis</Profile>
-      <Profile Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">sce_cs_orbis</Profile>
-      <Profile Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">sce_cs_orbis</Profile>
-      <Profile Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">sce_cs_orbis</Profile>
-      <Profile Condition="'$(Configuration)|$(Platform)'=='Release|x64'">sce_cs_orbis</Profile>
-      <FileType>Document</FileType>
-    </Compile_PSSL_To_Header>
-    <Compile_PSSL_To_Header Include="..\vp9\decoder\kernels\inter_ver_hbd_c.pssl">
-      <Profile Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">sce_cs_orbis</Profile>
-      <Profile Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">sce_cs_orbis</Profile>
-      <Profile Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">sce_cs_orbis</Profile>
-      <Profile Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">sce_cs_orbis</Profile>
-      <Profile Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">sce_cs_orbis</Profile>
-      <Profile Condition="'$(Configuration)|$(Platform)'=='Release|x64'">sce_cs_orbis</Profile>
-      <FileType>Document</FileType>
-    </Compile_PSSL_To_Header>
-  </ItemGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
-  <ImportGroup Label="ExtensionTargets">
-    <Import Project="$(ProgramFiles)\SCE\ORBIS SDKs\3.500\host_tools\msbuild\SceShader.targets" />
-    <Import Project="$(VCTargetsPath)\BuildCustomizations\OrbisWavePsslc.targets" />
-  </ImportGroup>
-</Project>
\ No newline at end of file
diff --git a/src/third_party/libvpx_gpu/vp9-dec-core/build/vpx-dec-core.vcxproj.filters b/src/third_party/libvpx_gpu/vp9-dec-core/build/vpx-dec-core.vcxproj.filters
deleted file mode 100644
index 7622140..0000000
--- a/src/third_party/libvpx_gpu/vp9-dec-core/build/vpx-dec-core.vcxproj.filters
+++ /dev/null
@@ -1,294 +0,0 @@
-﻿<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <ItemGroup>
-    <ClCompile Include="..\vpx\src\vpx_decoder.c" />
-    <ClCompile Include="..\vpx\src\vpx_codec.c" />
-    <ClCompile Include="..\vpx\src\vpx_image.c" />
-    <ClCompile Include="..\vpx_mem\vpx_mem.c" />
-    <ClCompile Include="..\vpx_scale\generic\vpx_scale.c" />
-    <ClCompile Include="..\vpx_scale\generic\yv12config.c" />
-    <ClCompile Include="..\vpx_scale\generic\yv12extend.c" />
-    <ClCompile Include="..\vpx_scale\generic\gen_scalers.c" />
-    <ClCompile Include="..\vp9\common\vp9_blockd.c" />
-    <ClCompile Include="..\vp9\common\vp9_debugmodes.c" />
-    <ClCompile Include="..\vp9\common\vp9_entropy.c" />
-    <ClCompile Include="..\vp9\common\vp9_entropymode.c" />
-    <ClCompile Include="..\vp9\common\vp9_entropymv.c" />
-    <ClCompile Include="..\vp9\common\vp9_pred_common.c" />
-    <ClCompile Include="..\vp9\common\vp9_prob.c" />
-    <ClCompile Include="..\vp9\common\vp9_scale.c" />
-    <ClCompile Include="..\vp9\common\vp9_seg_common.c" />
-    <ClCompile Include="..\vp9\common\vp9_thread.c" />
-    <ClCompile Include="..\vp9\common\vp9_tile_common.c" />
-    <ClCompile Include="..\vp9\common\vp9_loopfilter.c" />
-    <ClCompile Include="..\vp9\common\vp9_mvref_common.c" />
-    <ClCompile Include="..\vp9\common\vp9_quant_common.c" />
-    <ClCompile Include="..\vp9\common\vp9_common_data.c" />
-    <ClCompile Include="..\vp9\common\vp9_scan.c" />
-    <ClCompile Include="..\vp9\vp9_dx_iface.c" />
-    <ClCompile Include="..\vp9\decoder\vp9_decodemv.c" />
-    <ClCompile Include="..\vp9\decoder\vp9_decodeframe.c" />
-    <ClCompile Include="..\vp9\decoder\vp9_detokenize.c" />
-    <ClCompile Include="..\vp9\decoder\vp9_reader.c" />
-    <ClCompile Include="..\vp9\decoder\vp9_read_bit_buffer.c" />
-    <ClCompile Include="..\vp9\decoder\vp9_decoder.c" />
-    <ClCompile Include="..\vp9\decoder\vp9_dsubexp.c" />
-    <ClCompile Include="..\vp9\decoder\vp9lux_thread.c">
-      <Filter>lux</Filter>
-    </ClCompile>
-    <ClCompile Include="..\vpx_scale\vpx_scale_rtcd.c" />
-    <ClCompile Include="..\vp9\decoder\vp9lux_decode_block.cpp">
-      <Filter>lux</Filter>
-    </ClCompile>
-    <ClCompile Include="..\vp9\decoder\vp9lux_inter.cpp">
-      <Filter>lux</Filter>
-    </ClCompile>
-    <ClCompile Include="..\vp9\decoder\vp9lux_transform.cpp">
-      <Filter>lux</Filter>
-    </ClCompile>
-    <ClCompile Include="..\vp9\decoder\vp9lux_gpu_programs.cpp">
-      <Filter>lux</Filter>
-    </ClCompile>
-    <ClCompile Include="..\vp9\decoder\vp9lux_gpu_mem_ps4.cpp">
-      <Filter>lux</Filter>
-    </ClCompile>
-    <ClCompile Include="..\vp9\decoder\vp9lux_dec.cpp">
-      <Filter>lux</Filter>
-    </ClCompile>
-    <ClCompile Include="..\vp9\decoder\vp9lux_loopfilter.cpp">
-      <Filter>lux</Filter>
-    </ClCompile>
-    <ClCompile Include="..\vp9\decoder\vp9lux_intra.cpp">
-      <Filter>lux</Filter>
-    </ClCompile>
-    <ClCompile Include="..\vp9\decoder\vp9lux_linear_allocator.cpp">
-      <Filter>lux</Filter>
-    </ClCompile>
-  </ItemGroup>
-  <ItemGroup>
-    <ClInclude Include="..\vpx\vpx_decoder.h" />
-    <ClInclude Include="..\vpx\internal\vpx_codec_internal.h" />
-    <ClInclude Include="..\vpx\vpx_codec.h" />
-    <ClInclude Include="..\vpx\vpx_frame_buffer.h" />
-    <ClInclude Include="..\vpx\vpx_image.h" />
-    <ClInclude Include="..\vpx\vpx_integer.h" />
-    <ClInclude Include="..\vpx_mem\vpx_mem.h" />
-    <ClInclude Include="..\vpx_mem\include\vpx_mem_intrnl.h" />
-    <ClInclude Include="..\vpx_scale\yv12config.h" />
-    <ClInclude Include="..\vpx_scale\vpx_scale.h" />
-    <ClInclude Include="..\vpx_ports\asm_offsets.h" />
-    <ClInclude Include="..\vpx_ports\mem.h" />
-    <ClInclude Include="..\vpx_ports\vpx_timer.h" />
-    <ClInclude Include="..\vpx_ports\x86.h" />
-    <ClInclude Include="..\vp9\common\vp9_ppflags.h" />
-    <ClInclude Include="..\vp9\common\vp9_filter.h" />
-    <ClInclude Include="..\vp9\common\vp9_frame_buffers.h" />
-    <ClInclude Include="..\vp9\common\vp9_blockd.h" />
-    <ClInclude Include="..\vp9\common\vp9_common.h" />
-    <ClInclude Include="..\vp9\common\vp9_entropy.h" />
-    <ClInclude Include="..\vp9\common\vp9_entropymode.h" />
-    <ClInclude Include="..\vp9\common\vp9_entropymv.h" />
-    <ClInclude Include="..\vp9\common\vp9_enums.h" />
-    <ClInclude Include="..\vp9\common\vp9_loopfilter.h" />
-    <ClInclude Include="..\vp9\common\vp9_mv.h" />
-    <ClInclude Include="..\vp9\common\vp9_pred_common.h" />
-    <ClInclude Include="..\vp9\common\vp9_prob.h" />
-    <ClInclude Include="..\vp9\common\vp9_quant_common.h" />
-    <ClInclude Include="..\vp9\common\vp9_scale.h" />
-    <ClInclude Include="..\vp9\common\vp9_seg_common.h" />
-    <ClInclude Include="..\vp9\common\vp9_systemdependent.h" />
-    <ClInclude Include="..\vp9\common\vp9_textblit.h" />
-    <ClInclude Include="..\vp9\common\vp9_thread.h" />
-    <ClInclude Include="..\vp9\common\vp9_tile_common.h" />
-    <ClInclude Include="..\vp9\common\vp9_mvref_common.h" />
-    <ClInclude Include="..\vp9\common\vp9_common_data.h" />
-    <ClInclude Include="..\vp9\common\vp9_scan.h" />
-    <ClInclude Include="..\vp9\decoder\vp9_decodeframe.h" />
-    <ClInclude Include="..\vp9\decoder\vp9_dthread.h" />
-    <ClInclude Include="..\vp9\decoder\vp9_reader.h" />
-    <ClInclude Include="..\vp9\decoder\vp9_read_bit_buffer.h" />
-    <ClInclude Include="..\vp9\decoder\vp9_decodemv.h" />
-    <ClInclude Include="..\vp9\decoder\vp9_detokenize.h" />
-    <ClInclude Include="..\vp9\decoder\vp9_decoder.h" />
-    <ClInclude Include="..\vp9\decoder\vp9_dsubexp.h" />
-    <ClInclude Include="..\vpx_ports\emmintrin_compat.h" />
-    <ClInclude Include="..\vpx_ports\mem_ops.h" />
-    <ClInclude Include="..\vpx_ports\mem_ops_aligned.h" />
-    <ClInclude Include="..\vp9\decoder\vp9lux_types.h">
-      <Filter>lux</Filter>
-    </ClInclude>
-    <ClInclude Include="..\vp9\decoder\vp9lux_decode_block.h">
-      <Filter>lux</Filter>
-    </ClInclude>
-    <ClInclude Include="..\vp9\decoder\vp9lux_intra_modes_table_binary.h">
-      <Filter>lux</Filter>
-    </ClInclude>
-    <ClInclude Include="..\vp9\common\vp9lux_log.h">
-      <Filter>lux</Filter>
-    </ClInclude>
-    <ClInclude Include="..\vp9\decoder\vp9lux_thread.h">
-      <Filter>lux</Filter>
-    </ClInclude>
-    <ClInclude Include="vpx_scale_rtcd.h" />
-    <ClInclude Include="..\vpx\vpx_hw_image.h" />
-    <ClInclude Include="..\vp9\decoder\kernels\pssl_common.h">
-      <Filter>lux\kernels</Filter>
-    </ClInclude>
-    <ClInclude Include="..\vp9\decoder\kernels\pssl_idct_base.h">
-      <Filter>lux\kernels</Filter>
-    </ClInclude>
-    <ClInclude Include="..\vp9\decoder\kernels\pssl_inter_common.h">
-      <Filter>lux\kernels</Filter>
-    </ClInclude>
-    <ClInclude Include="..\vp9\decoder\vp9lux_inter.h">
-      <Filter>lux</Filter>
-    </ClInclude>
-    <ClInclude Include="..\vp9\decoder\vp9lux_transform.h">
-      <Filter>lux</Filter>
-    </ClInclude>
-    <ClInclude Include="..\vp9\decoder\vp9lux_gpu_programs.h">
-      <Filter>lux</Filter>
-    </ClInclude>
-    <ClInclude Include="..\vp9\decoder\vp9lux_dec.h">
-      <Filter>lux</Filter>
-    </ClInclude>
-    <ClInclude Include="..\vp9\decoder\vp9lux_loopfilter.h">
-      <Filter>lux</Filter>
-    </ClInclude>
-    <ClInclude Include="..\vp9\decoder\vp9lux_intra.h">
-      <Filter>lux</Filter>
-    </ClInclude>
-    <ClInclude Include="..\vp9\common\vp9_onyxc_int.h" />
-    <ClInclude Include="..\vp9\decoder\vp9lux_linear_allocator.h">
-      <Filter>lux</Filter>
-    </ClInclude>
-    <ClInclude Include="..\vp9\decoder\kernels\pssl_intra_common.h">
-      <Filter>lux\kernels</Filter>
-    </ClInclude>
-    <ClInclude Include="..\vp9\decoder\kernels\pssl_genblock_common.h">
-      <Filter>lux\kernels</Filter>
-    </ClInclude>
-    <ClInclude Include="..\vp9\decoder\kernels\pssl_lf_common.h">
-      <Filter>lux\kernels</Filter>
-    </ClInclude>
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="..\vpx.def" />
-    <None Include="..\vpx\vpx_codec.mk" />
-  </ItemGroup>
-  <ItemGroup>
-    <Filter Include="lux">
-      <UniqueIdentifier>{9c8917ac-b928-40c6-b3e4-6014d514ece6}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="lux\kernels">
-      <UniqueIdentifier>{7e8d8f3b-6882-4b26-a6a1-9d61b33b1f82}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="asm">
-      <UniqueIdentifier>{6c274781-a394-48cf-baf1-485def749ece}</UniqueIdentifier>
-    </Filter>
-  </ItemGroup>
-  <ItemGroup>
-    <Compile_PSSL_To_Header Include="..\vp9\decoder\kernels\idct_4x4full_c.pssl">
-      <Filter>lux\kernels</Filter>
-    </Compile_PSSL_To_Header>
-    <Compile_PSSL_To_Header Include="..\vp9\decoder\kernels\idct_8x8full_c.pssl">
-      <Filter>lux\kernels</Filter>
-    </Compile_PSSL_To_Header>
-    <Compile_PSSL_To_Header Include="..\vp9\decoder\kernels\idct_16x16full_c.pssl">
-      <Filter>lux\kernels</Filter>
-    </Compile_PSSL_To_Header>
-    <Compile_PSSL_To_Header Include="..\vp9\decoder\kernels\idct_32x32full_c.pssl">
-      <Filter>lux\kernels</Filter>
-    </Compile_PSSL_To_Header>
-    <Compile_PSSL_To_Header Include="..\vp9\decoder\kernels\inter_compound_c.pssl">
-      <Filter>lux\kernels</Filter>
-    </Compile_PSSL_To_Header>
-    <Compile_PSSL_To_Header Include="..\vp9\decoder\kernels\inter_main_c.pssl">
-      <Filter>lux\kernels</Filter>
-    </Compile_PSSL_To_Header>
-    <Compile_PSSL_To_Header Include="..\vp9\decoder\kernels\intra_main_c.pssl">
-      <Filter>lux\kernels</Filter>
-    </Compile_PSSL_To_Header>
-    <Compile_PSSL_To_Header Include="..\vp9\decoder\kernels\lf_c.pssl">
-      <Filter>lux\kernels</Filter>
-    </Compile_PSSL_To_Header>
-    <Compile_PSSL_To_Header Include="..\vp9\decoder\kernels\inter_ext_borders_c.pssl">
-      <Filter>lux\kernels</Filter>
-    </Compile_PSSL_To_Header>
-    <Compile_PSSL_To_Header Include="..\vp9\decoder\kernels\idct_4x4lossless_c.pssl">
-      <Filter>lux\kernels</Filter>
-    </Compile_PSSL_To_Header>
-    <Compile_PSSL_To_Header Include="..\vp9\decoder\kernels\inter_main_copy_c.pssl">
-      <Filter>lux\kernels</Filter>
-    </Compile_PSSL_To_Header>
-    <Compile_PSSL_To_Header Include="..\vp9\decoder\kernels\inter_main_ver_c.pssl">
-      <Filter>lux\kernels</Filter>
-    </Compile_PSSL_To_Header>
-    <Compile_PSSL_To_Header Include="..\vp9\decoder\kernels\inter_main_hor_c.pssl">
-      <Filter>lux\kernels</Filter>
-    </Compile_PSSL_To_Header>
-    <Compile_PSSL_To_Header Include="..\vp9\decoder\kernels\inter_resize_c.pssl">
-      <Filter>lux\kernels</Filter>
-    </Compile_PSSL_To_Header>
-    <Compile_PSSL_To_Header Include="..\vp9\decoder\kernels\inter_resize_compound_c.pssl">
-      <Filter>lux\kernels</Filter>
-    </Compile_PSSL_To_Header>
-    <Compile_PSSL_To_Header Include="..\vp9\decoder\kernels\gen_blocks_c.pssl">
-      <Filter>lux\kernels</Filter>
-    </Compile_PSSL_To_Header>
-    <Compile_PSSL_To_Header Include="..\vp9\decoder\kernels\gen_blocks_lf_c.pssl">
-      <Filter>lux\kernels</Filter>
-    </Compile_PSSL_To_Header>
-    <Compile_PSSL_To_Header Include="..\vp9\decoder\kernels\idct_clear_block_c.pssl">
-      <Filter>lux\kernels</Filter>
-    </Compile_PSSL_To_Header>
-    <Compile_PSSL_To_Header Include="..\vp9\decoder\kernels\idct_4x4full_hbd_c.pssl">
-      <Filter>lux\kernels</Filter>
-    </Compile_PSSL_To_Header>
-    <Compile_PSSL_To_Header Include="..\vp9\decoder\kernels\idct_4x4lossless_hbd_c.pssl">
-      <Filter>lux\kernels</Filter>
-    </Compile_PSSL_To_Header>
-    <Compile_PSSL_To_Header Include="..\vp9\decoder\kernels\idct_8x8full_hbd_c.pssl">
-      <Filter>lux\kernels</Filter>
-    </Compile_PSSL_To_Header>
-    <Compile_PSSL_To_Header Include="..\vp9\decoder\kernels\idct_16x16full_hbd_c.pssl">
-      <Filter>lux\kernels</Filter>
-    </Compile_PSSL_To_Header>
-    <Compile_PSSL_To_Header Include="..\vp9\decoder\kernels\idct_32x32full_hbd_c.pssl">
-      <Filter>lux\kernels</Filter>
-    </Compile_PSSL_To_Header>
-    <Compile_PSSL_To_Header Include="..\vp9\decoder\kernels\intra_main_hbd_c.pssl">
-      <Filter>lux\kernels</Filter>
-    </Compile_PSSL_To_Header>
-    <Compile_PSSL_To_Header Include="..\vp9\decoder\kernels\intra_fillborder_c.pssl">
-      <Filter>lux\kernels</Filter>
-    </Compile_PSSL_To_Header>
-    <Compile_PSSL_To_Header Include="..\vp9\decoder\kernels\inter_main_hbd_c.pssl">
-      <Filter>lux\kernels</Filter>
-    </Compile_PSSL_To_Header>
-    <Compile_PSSL_To_Header Include="..\vp9\decoder\kernels\inter_compound_hbd_c.pssl">
-      <Filter>lux\kernels</Filter>
-    </Compile_PSSL_To_Header>
-    <Compile_PSSL_To_Header Include="..\vp9\decoder\kernels\inter_copy_hbd_c.pssl">
-      <Filter>lux\kernels</Filter>
-    </Compile_PSSL_To_Header>
-    <Compile_PSSL_To_Header Include="..\vp9\decoder\kernels\inter_ext_borders_hbd_c.pssl">
-      <Filter>lux\kernels</Filter>
-    </Compile_PSSL_To_Header>
-    <Compile_PSSL_To_Header Include="..\vp9\decoder\kernels\inter_hor_hbd_c.pssl">
-      <Filter>lux\kernels</Filter>
-    </Compile_PSSL_To_Header>
-    <Compile_PSSL_To_Header Include="..\vp9\decoder\kernels\inter_resize_compound_hbd_c.pssl">
-      <Filter>lux\kernels</Filter>
-    </Compile_PSSL_To_Header>
-    <Compile_PSSL_To_Header Include="..\vp9\decoder\kernels\inter_resize_hbd_c.pssl">
-      <Filter>lux\kernels</Filter>
-    </Compile_PSSL_To_Header>
-    <Compile_PSSL_To_Header Include="..\vp9\decoder\kernels\inter_ver_hbd_c.pssl">
-      <Filter>lux\kernels</Filter>
-    </Compile_PSSL_To_Header>
-    <Compile_PSSL_To_Header Include="..\vp9\decoder\kernels\lf_hbd_c.pssl">
-      <Filter>lux\kernels</Filter>
-    </Compile_PSSL_To_Header>
-  </ItemGroup>
-</Project>
\ No newline at end of file
diff --git a/src/third_party/libvpx_gpu/vp9-dec-core/build/vpx-dec-coreVS13.vcxproj b/src/third_party/libvpx_gpu/vp9-dec-core/build/vpx-dec-coreVS13.vcxproj
deleted file mode 100644
index 049a40b..0000000
--- a/src/third_party/libvpx_gpu/vp9-dec-core/build/vpx-dec-coreVS13.vcxproj
+++ /dev/null
@@ -1,507 +0,0 @@
-﻿<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <ItemGroup Label="ProjectConfigurations">
-    <ProjectConfiguration Include="Debug|Win32">
-      <Configuration>Debug</Configuration>
-      <Platform>Win32</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Debug|x64">
-      <Configuration>Debug</Configuration>
-      <Platform>x64</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Release|Win32">
-      <Configuration>Release</Configuration>
-      <Platform>Win32</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Release|x64">
-      <Configuration>Release</Configuration>
-      <Platform>x64</Platform>
-    </ProjectConfiguration>
-  </ItemGroup>
-  <PropertyGroup Label="Globals">
-    <ProjectGuid>{DCE19DAF-69AC-46DB-B14A-39F0FAA5DB74}</ProjectGuid>
-    <RootNamespace>vpx</RootNamespace>
-    <Keyword>ManagedCProj</Keyword>
-    <ProjectName>vp9-dec-core</ProjectName>
-  </PropertyGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
-    <ConfigurationType>StaticLibrary</ConfigurationType>
-    <CharacterSet>Unicode</CharacterSet>
-    <WholeProgramOptimization>true</WholeProgramOptimization>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
-    <ConfigurationType>StaticLibrary</ConfigurationType>
-    <CharacterSet>Unicode</CharacterSet>
-    <WholeProgramOptimization>true</WholeProgramOptimization>
-    <PlatformToolset>v120</PlatformToolset>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
-    <ConfigurationType>StaticLibrary</ConfigurationType>
-    <CharacterSet>Unicode</CharacterSet>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
-    <ConfigurationType>StaticLibrary</ConfigurationType>
-    <CharacterSet>Unicode</CharacterSet>
-    <PlatformToolset>v120</PlatformToolset>
-  </PropertyGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
-  <ImportGroup Label="PropertySheets">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-  </ImportGroup>
-  <PropertyGroup Label="UserMacros" />
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
-    <OutDir>$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
-    <IntDir>$(Platform)\$(Configuration)\vpx\</IntDir>
-    <TargetName>$(ProjectName)</TargetName>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-    <OutDir>$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
-    <IntDir>$(Platform)\$(Configuration)\vpx\</IntDir>
-    <TargetName>$(ProjectName)</TargetName>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
-    <OutDir>$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
-    <IntDir>$(Platform)\$(Configuration)\vpx\</IntDir>
-    <TargetName>$(ProjectName)</TargetName>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
-    <OutDir>$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
-    <IntDir>$(Platform)\$(Configuration)\vpx\</IntDir>
-    <TargetName>$(ProjectName)</TargetName>
-  </PropertyGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
-    <PreBuildEvent>
-      <Command>call obj_int_extract.bat .. build_$(Platform)</Command>
-    </PreBuildEvent>
-    <ClCompile>
-      <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>.;..;$(AMDAPPSDKROOT)\include;$(ProjectDir)build_$(Platform);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>AMD_DX_INTEROP;ENABLE_DX_INTEROP;_LUXWIN32;ALT_INTER_OCL;WIN32;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
-      <WarningLevel>Level3</WarningLevel>
-    </ClCompile>
-    <Lib>
-      <AdditionalLibraryDirectories>$(AMDAPPSDKROOT)\lib\x86_64;</AdditionalLibraryDirectories>
-    </Lib>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-    <PreBuildEvent>
-      <Command>
-      </Command>
-    </PreBuildEvent>
-    <ClCompile>
-      <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>.;..;$(AMDAPPSDKROOT)\include;$(ProjectDir)build_$(Platform);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>AMD_DX_INTEROP;_LUXWIN32;ALT_INTER_OCL;WIN32;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE;;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
-      <WarningLevel>Level3</WarningLevel>
-    </ClCompile>
-    <Lib>
-      <AdditionalLibraryDirectories>$(AMDAPPSDKROOT)\lib\x86_64;</AdditionalLibraryDirectories>
-    </Lib>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
-    <PreBuildEvent>
-      <Command>call obj_int_extract.bat .. build_$(Platform)
-cd ./script
-call mclBuild.bat</Command>
-    </PreBuildEvent>
-    <ClCompile>
-      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
-      <Optimization>MaxSpeed</Optimization>
-      <AdditionalIncludeDirectories>.;..;$(AMDAPPSDKROOT)\include;$(ProjectDir)build_$(Platform);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>AMD_DX_INTEROP;ENABLE_DX_INTEROP;_LUXWIN32;ALT_INTER_OCL;WIN32;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE;;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
-      <WarningLevel>Level3</WarningLevel>
-      <WholeProgramOptimization>true</WholeProgramOptimization>
-    </ClCompile>
-    <Lib>
-      <AdditionalLibraryDirectories>$(AMDAPPSDKROOT)\lib\x86_64;</AdditionalLibraryDirectories>
-    </Lib>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
-    <PreBuildEvent>
-      <Command>call obj_int_extract.bat .. build_$(Platform)
-cd ./script
-call mclBuild.bat</Command>
-    </PreBuildEvent>
-    <ClCompile>
-      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
-      <Optimization>MaxSpeed</Optimization>
-      <AdditionalIncludeDirectories>.;..;$(AMDAPPSDKROOT)\include;$(ProjectDir)build_$(Platform);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>AMD_DX_INTEROP;_LUXWIN32;ALT_INTER_OCL;WIN32;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE;;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
-      <WarningLevel>Level3</WarningLevel>
-    </ClCompile>
-    <Lib>
-      <AdditionalLibraryDirectories>$(AMDAPPSDKROOT)\lib\x86_64;</AdditionalLibraryDirectories>
-    </Lib>
-  </ItemDefinitionGroup>
-  <ItemGroup>
-    <ClCompile Include="..\vp9\decoder\interop\vp9lux_cl_wrapper.c" />
-    <ClCompile Include="..\vp9\decoder\interop\vp9lux_interop.c" />
-    <ClCompile Include="..\vp9\decoder\vp9lux_alt_inter_ocl.c" />
-    <ClCompile Include="..\vp9\decoder\vp9lux_decode_block.c" />
-    <ClCompile Include="..\vp9\decoder\vp9lux_inter_ocl.c">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
-    </ClCompile>
-    <ClCompile Include="..\vp9\decoder\vp9lux_intra_ocl.c" />
-    <ClCompile Include="..\vp9\decoder\vp9lux_loopfilter_ocl.c" />
-    <ClCompile Include="..\vp9\decoder\vp9lux_mem_cuda.c">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
-    </ClCompile>
-    <ClCompile Include="..\vp9\decoder\vp9lux_ocl.c" />
-    <ClCompile Include="..\vp9\decoder\vp9lux_ocl_mem_amd.c" />
-    <ClCompile Include="..\vp9\decoder\vp9lux_ocl_mem_generic.c" />
-    <ClCompile Include="..\vp9\decoder\vp9lux_ocl_programs.c" />
-    <ClCompile Include="..\vp9\decoder\vp9lux_reconinter_cl.c">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
-    </ClCompile>
-    <ClCompile Include="..\vp9\decoder\vp9lux_thread.c" />
-    <ClCompile Include="..\vp9\decoder\vp9lux_transform_ocl.c" />
-    <ClCompile Include="..\vpx\src\vpx_decoder.c">
-      <ObjectFileName>$(IntDir)vpx_src_vpx_decoder.obj</ObjectFileName>
-    </ClCompile>
-    <ClCompile Include="..\vpx\src\vpx_encoder.c">
-      <ObjectFileName>$(IntDir)vpx_src_vpx_encoder.obj</ObjectFileName>
-    </ClCompile>
-    <ClCompile Include="..\vpx\src\vpx_codec.c">
-      <ObjectFileName>$(IntDir)vpx_src_vpx_codec.obj</ObjectFileName>
-    </ClCompile>
-    <ClCompile Include="..\vpx\src\vpx_image.c">
-      <ObjectFileName>$(IntDir)vpx_src_vpx_image.obj</ObjectFileName>
-    </ClCompile>
-    <ClCompile Include="..\vpx\src\vpx_psnr.c">
-      <ObjectFileName>$(IntDir)vpx_src_vpx_psnr.obj</ObjectFileName>
-    </ClCompile>
-    <ClCompile Include="..\vpx_mem\vpx_mem.c">
-      <ObjectFileName>$(IntDir)vpx_mem_vpx_mem.obj</ObjectFileName>
-    </ClCompile>
-    <ClCompile Include="..\vpx_scale\generic\vpx_scale.c">
-      <ObjectFileName>$(IntDir)vpx_scale_generic_vpx_scale.obj</ObjectFileName>
-    </ClCompile>
-    <ClCompile Include="..\vpx_scale\generic\yv12config.c">
-      <ObjectFileName>$(IntDir)vpx_scale_generic_yv12config.obj</ObjectFileName>
-    </ClCompile>
-    <ClCompile Include="..\vpx_scale\generic\yv12extend.c">
-      <ObjectFileName>$(IntDir)vpx_scale_generic_yv12extend.obj</ObjectFileName>
-    </ClCompile>
-    <ClCompile Include="..\vpx_scale\generic\gen_scalers.c">
-      <ObjectFileName>$(IntDir)vpx_scale_generic_gen_scalers.obj</ObjectFileName>
-    </ClCompile>
-    <ClCompile Include="..\vpx_scale\vpx_scale_asm_offsets.c">
-      <ObjectFileName>$(IntDir)vpx_scale_vpx_scale_asm_offsets.obj</ObjectFileName>
-    </ClCompile>
-    <ClCompile Include="..\vpx_scale\vpx_scale_rtcd.c">
-      <ObjectFileName>$(IntDir)vpx_scale_vpx_scale_rtcd.obj</ObjectFileName>
-    </ClCompile>
-    <CustomBuild Include="..\vpx_ports\emms.asm">
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Assembling %(Filename)%(Extension)</Message>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Assembling %(Filename)%(Extension)</Message>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">..\yasm\yasm.exe -Xvc -g cv8 -f $(Platform)  -I. -I.. -I $(ProjectDir)build_$(Platform) "%(FullPath)" -o $(IntDir)vpx_ports_emms_asm.obj</Command>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\yasm\yasm.exe -Xvc -g cv8 -f $(Platform)  -I. -I.. -I $(ProjectDir)build_$(Platform) "%(FullPath)" -o $(IntDir)vpx_ports_emms_asm.obj</Command>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)vpx_ports_emms_asm.obj</Outputs>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)vpx_ports_emms_asm.obj</Outputs>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Assembling %(Filename)%(Extension)</Message>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Assembling %(Filename)%(Extension)</Message>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">..\yasm\yasm.exe -Xvc -f $(Platform)  -I. -I.. -I $(ProjectDir)build_$(Platform) "%(FullPath)" -o $(IntDir)vpx_ports_emms_asm.obj</Command>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\yasm\yasm.exe -Xvc -f $(Platform)  -I. -I.. -I $(ProjectDir)build_$(Platform) "%(FullPath)" -o $(IntDir)vpx_ports_emms_asm.obj</Command>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)vpx_ports_emms_asm.obj</Outputs>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)vpx_ports_emms_asm.obj</Outputs>
-      <FileType>Document</FileType>
-    </CustomBuild>
-    <ClCompile Include="..\vp9\common\vp9_alloccommon.c">
-      <ObjectFileName>$(IntDir)vp9_common_vp9_alloccommon.obj</ObjectFileName>
-    </ClCompile>
-    <ClCompile Include="..\vp9\common\vp9_blockd.c">
-      <ObjectFileName>$(IntDir)vp9_common_vp9_blockd.obj</ObjectFileName>
-    </ClCompile>
-    <ClCompile Include="..\vp9\common\vp9_convolve.c">
-      <ObjectFileName>$(IntDir)vp9_common_vp9_convolve.obj</ObjectFileName>
-    </ClCompile>
-    <ClCompile Include="..\vp9\common\vp9_debugmodes.c">
-      <ObjectFileName>$(IntDir)vp9_common_vp9_debugmodes.obj</ObjectFileName>
-    </ClCompile>
-    <ClCompile Include="..\vp9\common\vp9_entropy.c">
-      <ObjectFileName>$(IntDir)vp9_common_vp9_entropy.obj</ObjectFileName>
-    </ClCompile>
-    <ClCompile Include="..\vp9\common\vp9_entropymode.c">
-      <ObjectFileName>$(IntDir)vp9_common_vp9_entropymode.obj</ObjectFileName>
-    </ClCompile>
-    <ClCompile Include="..\vp9\common\vp9_entropymv.c">
-      <ObjectFileName>$(IntDir)vp9_common_vp9_entropymv.obj</ObjectFileName>
-    </ClCompile>
-    <ClCompile Include="..\vp9\common\vp9_filter.c">
-      <ObjectFileName>$(IntDir)vp9_common_vp9_filter.obj</ObjectFileName>
-    </ClCompile>
-    <ClCompile Include="..\vp9\common\vp9_frame_buffers.c">
-      <ObjectFileName>$(IntDir)vp9_common_vp9_frame_buffers.obj</ObjectFileName>
-    </ClCompile>
-    <ClCompile Include="..\vp9\common\vp9_idct.c">
-      <ObjectFileName>$(IntDir)vp9_common_vp9_idct.obj</ObjectFileName>
-    </ClCompile>
-    <ClCompile Include="..\vp9\common\vp9_pred_common.c">
-      <ObjectFileName>$(IntDir)vp9_common_vp9_pred_common.obj</ObjectFileName>
-    </ClCompile>
-    <ClCompile Include="..\vp9\common\vp9_prob.c">
-      <ObjectFileName>$(IntDir)vp9_common_vp9_prob.obj</ObjectFileName>
-    </ClCompile>
-    <ClCompile Include="..\vp9\common\vp9_rtcd.c">
-      <ObjectFileName>$(IntDir)vp9_common_vp9_rtcd.obj</ObjectFileName>
-    </ClCompile>
-    <ClCompile Include="..\vp9\common\vp9_scale.c">
-      <ObjectFileName>$(IntDir)vp9_common_vp9_scale.obj</ObjectFileName>
-    </ClCompile>
-    <ClCompile Include="..\vp9\common\vp9_seg_common.c">
-      <ObjectFileName>$(IntDir)vp9_common_vp9_seg_common.obj</ObjectFileName>
-    </ClCompile>
-    <ClCompile Include="..\vp9\common\vp9_thread.c">
-      <ObjectFileName>$(IntDir)vp9_common_vp9_thread.obj</ObjectFileName>
-    </ClCompile>
-    <ClCompile Include="..\vp9\common\vp9_tile_common.c">
-      <ObjectFileName>$(IntDir)vp9_common_vp9_tile_common.obj</ObjectFileName>
-    </ClCompile>
-    <ClCompile Include="..\vp9\common\vp9_loopfilter.c">
-      <ObjectFileName>$(IntDir)vp9_common_vp9_loopfilter.obj</ObjectFileName>
-    </ClCompile>
-    <ClCompile Include="..\vp9\common\vp9_loopfilter_filters.c">
-      <ObjectFileName>$(IntDir)vp9_common_vp9_loopfilter_filters.obj</ObjectFileName>
-    </ClCompile>
-    <ClCompile Include="..\vp9\common\vp9_mvref_common.c">
-      <ObjectFileName>$(IntDir)vp9_common_vp9_mvref_common.obj</ObjectFileName>
-    </ClCompile>
-    <ClCompile Include="..\vp9\common\vp9_quant_common.c">
-      <ObjectFileName>$(IntDir)vp9_common_vp9_quant_common.obj</ObjectFileName>
-    </ClCompile>
-    <ClCompile Include="..\vp9\common\vp9_reconinter.c">
-      <ObjectFileName>$(IntDir)vp9_common_vp9_reconinter.obj</ObjectFileName>
-    </ClCompile>
-    <ClCompile Include="..\vp9\common\vp9_reconintra.c">
-      <ObjectFileName>$(IntDir)vp9_common_vp9_reconintra.obj</ObjectFileName>
-    </ClCompile>
-    <ClCompile Include="..\vp9\common\vp9_common_data.c">
-      <ObjectFileName>$(IntDir)vp9_common_vp9_common_data.obj</ObjectFileName>
-    </ClCompile>
-    <ClCompile Include="..\vp9\common\vp9_scan.c">
-      <ObjectFileName>$(IntDir)vp9_common_vp9_scan.obj</ObjectFileName>
-    </ClCompile>
-    <ClCompile Include="..\vp9\common\x86\vp9_asm_stubs.c">
-      <ObjectFileName>$(IntDir)vp9_common_x86_vp9_asm_stubs.obj</ObjectFileName>
-    </ClCompile>
-    <ClCompile Include="..\vp9\common\x86\vp9_loopfilter_intrin_sse2.c">
-      <ObjectFileName>$(IntDir)vp9_common_x86_vp9_loopfilter_intrin_sse2.obj</ObjectFileName>
-    </ClCompile>
-    <CustomBuild Include="..\vp9\common\x86\vp9_loopfilter_mmx.asm">
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Assembling %(Filename)%(Extension)</Message>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Assembling %(Filename)%(Extension)</Message>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">..\yasm\yasm.exe -Xvc -g cv8 -f $(Platform)  -I. -I.. -I $(ProjectDir)build_$(Platform) "%(FullPath)" -o $(IntDir)vp9_common_x86_vp9_loopfilter_mmx_asm.obj</Command>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\yasm\yasm.exe -Xvc -g cv8 -f $(Platform)  -I. -I.. -I $(ProjectDir)build_$(Platform) "%(FullPath)" -o $(IntDir)vp9_common_x86_vp9_loopfilter_mmx_asm.obj</Command>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)vp9_common_x86_vp9_loopfilter_mmx_asm.obj</Outputs>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)vp9_common_x86_vp9_loopfilter_mmx_asm.obj</Outputs>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Assembling %(Filename)%(Extension)</Message>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Assembling %(Filename)%(Extension)</Message>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">..\yasm\yasm.exe -Xvc -f $(Platform)  -I. -I.. -I $(ProjectDir)build_$(Platform) "%(FullPath)" -o $(IntDir)vp9_common_x86_vp9_loopfilter_mmx_asm.obj</Command>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\yasm\yasm.exe -Xvc -f $(Platform)  -I. -I.. -I $(ProjectDir)build_$(Platform) "%(FullPath)" -o $(IntDir)vp9_common_x86_vp9_loopfilter_mmx_asm.obj</Command>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)vp9_common_x86_vp9_loopfilter_mmx_asm.obj</Outputs>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)vp9_common_x86_vp9_loopfilter_mmx_asm.obj</Outputs>
-      <FileType>Document</FileType>
-    </CustomBuild>
-    <ClCompile Include="..\vp9\common\x86\vp9_subpixel_8t_intrin_ssse3.c">
-      <ObjectFileName>$(IntDir)vp9_common_x86_vp9_subpixel_8t_intrin_ssse3.obj</ObjectFileName>
-    </ClCompile>
-    <CustomBuild Include="..\vp9\common\x86\vp9_copy_sse2.asm">
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Assembling %(Filename)%(Extension)</Message>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Assembling %(Filename)%(Extension)</Message>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">..\yasm\yasm.exe -Xvc -g cv8 -f $(Platform)  -I. -I.. -I $(ProjectDir)build_$(Platform) "%(FullPath)" -o $(IntDir)vp9_common_x86_vp9_copy_sse2_asm.obj</Command>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\yasm\yasm.exe -Xvc -g cv8 -f $(Platform)  -I. -I.. -I $(ProjectDir)build_$(Platform) "%(FullPath)" -o $(IntDir)vp9_common_x86_vp9_copy_sse2_asm.obj</Command>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)vp9_common_x86_vp9_copy_sse2_asm.obj</Outputs>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)vp9_common_x86_vp9_copy_sse2_asm.obj</Outputs>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Assembling %(Filename)%(Extension)</Message>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Assembling %(Filename)%(Extension)</Message>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">..\yasm\yasm.exe -Xvc -f $(Platform)  -I. -I.. -I $(ProjectDir)build_$(Platform) "%(FullPath)" -o $(IntDir)vp9_common_x86_vp9_copy_sse2_asm.obj</Command>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\yasm\yasm.exe -Xvc -f $(Platform)  -I. -I.. -I $(ProjectDir)build_$(Platform) "%(FullPath)" -o $(IntDir)vp9_common_x86_vp9_copy_sse2_asm.obj</Command>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)vp9_common_x86_vp9_copy_sse2_asm.obj</Outputs>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)vp9_common_x86_vp9_copy_sse2_asm.obj</Outputs>
-      <FileType>Document</FileType>
-    </CustomBuild>
-    <CustomBuild Include="..\vp9\common\x86\vp9_intrapred_sse2.asm">
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Assembling %(Filename)%(Extension)</Message>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Assembling %(Filename)%(Extension)</Message>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">..\yasm\yasm.exe -Xvc -g cv8 -f $(Platform)  -I. -I.. -I $(ProjectDir)build_$(Platform) "%(FullPath)" -o $(IntDir)vp9_common_x86_vp9_intrapred_sse2_asm.obj</Command>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\yasm\yasm.exe -Xvc -g cv8 -f $(Platform)  -I. -I.. -I $(ProjectDir)build_$(Platform) "%(FullPath)" -o $(IntDir)vp9_common_x86_vp9_intrapred_sse2_asm.obj</Command>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)vp9_common_x86_vp9_intrapred_sse2_asm.obj</Outputs>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)vp9_common_x86_vp9_intrapred_sse2_asm.obj</Outputs>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Assembling %(Filename)%(Extension)</Message>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Assembling %(Filename)%(Extension)</Message>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">..\yasm\yasm.exe -Xvc -f $(Platform)  -I. -I.. -I $(ProjectDir)build_$(Platform) "%(FullPath)" -o $(IntDir)vp9_common_x86_vp9_intrapred_sse2_asm.obj</Command>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\yasm\yasm.exe -Xvc -f $(Platform)  -I. -I.. -I $(ProjectDir)build_$(Platform) "%(FullPath)" -o $(IntDir)vp9_common_x86_vp9_intrapred_sse2_asm.obj</Command>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)vp9_common_x86_vp9_intrapred_sse2_asm.obj</Outputs>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)vp9_common_x86_vp9_intrapred_sse2_asm.obj</Outputs>
-      <FileType>Document</FileType>
-    </CustomBuild>
-    <CustomBuild Include="..\vp9\common\x86\vp9_intrapred_ssse3.asm">
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Assembling %(Filename)%(Extension)</Message>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Assembling %(Filename)%(Extension)</Message>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">..\yasm\yasm.exe -Xvc -g cv8 -f $(Platform)  -I. -I.. -I $(ProjectDir)build_$(Platform) "%(FullPath)" -o $(IntDir)vp9_common_x86_vp9_intrapred_ssse3_asm.obj</Command>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\yasm\yasm.exe -Xvc -g cv8 -f $(Platform)  -I. -I.. -I $(ProjectDir)build_$(Platform) "%(FullPath)" -o $(IntDir)vp9_common_x86_vp9_intrapred_ssse3_asm.obj</Command>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)vp9_common_x86_vp9_intrapred_ssse3_asm.obj</Outputs>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)vp9_common_x86_vp9_intrapred_ssse3_asm.obj</Outputs>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Assembling %(Filename)%(Extension)</Message>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Assembling %(Filename)%(Extension)</Message>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">..\yasm\yasm.exe -Xvc -f $(Platform)  -I. -I.. -I $(ProjectDir)build_$(Platform) "%(FullPath)" -o $(IntDir)vp9_common_x86_vp9_intrapred_ssse3_asm.obj</Command>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\yasm\yasm.exe -Xvc -f $(Platform)  -I. -I.. -I $(ProjectDir)build_$(Platform) "%(FullPath)" -o $(IntDir)vp9_common_x86_vp9_intrapred_ssse3_asm.obj</Command>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)vp9_common_x86_vp9_intrapred_ssse3_asm.obj</Outputs>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)vp9_common_x86_vp9_intrapred_ssse3_asm.obj</Outputs>
-      <FileType>Document</FileType>
-    </CustomBuild>
-    <ClCompile Include="..\vp9\common\x86\vp9_idct_intrin_sse2.c">
-      <ObjectFileName>$(IntDir)vp9_common_x86_vp9_idct_intrin_sse2.obj</ObjectFileName>
-    </ClCompile>
-    <ClCompile Include="..\vp9\common\x86\vp9_idct_intrin_ssse3.c">
-      <ObjectFileName>$(IntDir)vp9_common_x86_vp9_idct_intrin_ssse3.obj</ObjectFileName>
-    </ClCompile>
-    <ClCompile Include="..\vp9\vp9_dx_iface.c">
-      <ObjectFileName>$(IntDir)vp9_vp9_dx_iface.obj</ObjectFileName>
-    </ClCompile>
-    <ClCompile Include="..\vp9\decoder\vp9_decodemv.c">
-      <ObjectFileName>$(IntDir)vp9_decoder_vp9_decodemv.obj</ObjectFileName>
-    </ClCompile>
-    <ClCompile Include="..\vp9\decoder\vp9_decodeframe.c">
-      <ObjectFileName>$(IntDir)vp9_decoder_vp9_decodeframe.obj</ObjectFileName>
-    </ClCompile>
-    <ClCompile Include="..\vp9\decoder\vp9_detokenize.c">
-      <ObjectFileName>$(IntDir)vp9_decoder_vp9_detokenize.obj</ObjectFileName>
-    </ClCompile>
-    <ClCompile Include="..\vp9\decoder\vp9_dthread.c">
-      <ObjectFileName>$(IntDir)vp9_decoder_vp9_dthread.obj</ObjectFileName>
-    </ClCompile>
-    <ClCompile Include="..\vp9\decoder\vp9_reader.c">
-      <ObjectFileName>$(IntDir)vp9_decoder_vp9_reader.obj</ObjectFileName>
-    </ClCompile>
-    <ClCompile Include="..\vp9\decoder\vp9_read_bit_buffer.c">
-      <ObjectFileName>$(IntDir)vp9_decoder_vp9_read_bit_buffer.obj</ObjectFileName>
-    </ClCompile>
-    <ClCompile Include="..\vp9\decoder\vp9_decoder.c">
-      <ObjectFileName>$(IntDir)vp9_decoder_vp9_decoder.obj</ObjectFileName>
-    </ClCompile>
-    <ClCompile Include="..\vp9\decoder\vp9_dsubexp.c">
-      <ObjectFileName>$(IntDir)vp9_decoder_vp9_dsubexp.obj</ObjectFileName>
-    </ClCompile>
-    <None Include="..\vp9\decoder\kernels\altinter.cl" />
-    <None Include="..\vp9\decoder\kernels\altinter_intel.cl" />
-    <None Include="..\vp9\decoder\kernels\alttransform.cl" />
-    <None Include="..\vp9\decoder\kernels\fastinterpred8x8kernel.cl" />
-    <None Include="..\vp9\decoder\kernels\interpred8x8kernel.cl" />
-    <None Include="..\vp9\decoder\kernels\intra.cl" />
-    <None Include="..\vp9\decoder\kernels\intra_intel.cl" />
-    <None Include="..\vp9\decoder\kernels\loopfilter.cl" />
-    <None Include="..\vp9\decoder\kernels\loopfilter_intel.cl" />
-    <None Include="..\vp9\decoder\kernels\transform.cl" />
-    <None Include="..\vpx.def" />
-  </ItemGroup>
-  <ItemGroup>
-    <ClInclude Include="..\vp9\common\vp9lux_log.h" />
-    <ClInclude Include="..\vp9\decoder\interop\vp9lux_cl_wrapper.h" />
-    <ClInclude Include="..\vp9\decoder\interop\vp9lux_interop.h" />
-    <ClInclude Include="..\vp9\decoder\vp9lux_alt_inter_ocl.h" />
-    <ClInclude Include="..\vp9\decoder\vp9lux_decode_block.h" />
-    <ClInclude Include="..\vp9\decoder\vp9lux_frame_struct.h" />
-    <ClInclude Include="..\vp9\decoder\vp9lux_inter_ocl.h">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
-    </ClInclude>
-    <ClInclude Include="..\vp9\decoder\vp9lux_intra_modes_table_binary.h" />
-    <ClInclude Include="..\vp9\decoder\vp9lux_intra_ocl.h" />
-    <ClInclude Include="..\vp9\decoder\vp9lux_loopfilter_ocl.h" />
-    <ClInclude Include="..\vp9\decoder\vp9lux_ocl.h" />
-    <ClInclude Include="..\vp9\decoder\vp9lux_ocl_binary.h" />
-    <ClInclude Include="..\vp9\decoder\vp9lux_ocl_programs.h" />
-    <ClInclude Include="..\vp9\decoder\vp9lux_reconinter_cl.h">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
-    </ClInclude>
-    <ClInclude Include="..\vp9\decoder\vp9lux_thread.h" />
-    <ClInclude Include="..\vp9\decoder\vp9lux_transform_ocl.h" />
-    <ClInclude Include="..\vp9\decoder\vp9lux_types.h" />
-    <ClInclude Include="..\vpx\vpx_decoder.h" />
-    <ClInclude Include="..\vpx\vpx_encoder.h" />
-    <ClInclude Include="..\vpx\internal\vpx_codec_internal.h" />
-    <ClInclude Include="..\vpx\internal\vpx_psnr.h" />
-    <ClInclude Include="..\vpx\vpx_codec.h" />
-    <ClInclude Include="..\vpx\vpx_frame_buffer.h" />
-    <ClInclude Include="..\vpx\vpx_image.h" />
-    <ClInclude Include="..\vpx\vpx_integer.h" />
-    <ClInclude Include="..\vpx_mem\vpx_mem.h" />
-    <ClInclude Include="..\vpx_mem\include\vpx_mem_intrnl.h" />
-    <ClInclude Include="..\vpx_scale\yv12config.h" />
-    <ClInclude Include="..\vpx_scale\vpx_scale.h" />
-    <ClInclude Include="..\vpx_ports\asm_offsets.h" />
-    <ClInclude Include="..\vpx_ports\mem.h" />
-    <ClInclude Include="..\vpx_ports\vpx_timer.h" />
-    <ClInclude Include="..\vpx_ports\x86.h" />
-    <ClInclude Include="..\vp9\vp9_iface_common.h" />
-    <ClInclude Include="..\vp9\common\vp9_ppflags.h" />
-    <ClInclude Include="..\vp9\common\vp9_convolve.h" />
-    <ClInclude Include="..\vp9\common\vp9_filter.h" />
-    <ClInclude Include="..\vp9\common\vp9_frame_buffers.h" />
-    <ClInclude Include="..\vp9\common\vp9_alloccommon.h" />
-    <ClInclude Include="..\vp9\common\vp9_blockd.h" />
-    <ClInclude Include="..\vp9\common\vp9_common.h" />
-    <ClInclude Include="..\vp9\common\vp9_entropy.h" />
-    <ClInclude Include="..\vp9\common\vp9_entropymode.h" />
-    <ClInclude Include="..\vp9\common\vp9_entropymv.h" />
-    <ClInclude Include="..\vp9\common\vp9_enums.h" />
-    <ClInclude Include="..\vp9\common\vp9_idct.h" />
-    <ClInclude Include="..\vp9\common\vp9_loopfilter.h" />
-    <ClInclude Include="..\vp9\common\vp9_mv.h" />
-    <ClInclude Include="..\vp9\common\vp9_pred_common.h" />
-    <ClInclude Include="..\vp9\common\vp9_prob.h" />
-    <ClInclude Include="..\vp9\common\vp9_quant_common.h" />
-    <ClInclude Include="..\vp9\common\vp9_reconinter.h" />
-    <ClInclude Include="..\vp9\common\vp9_reconintra.h" />
-    <ClInclude Include="..\vp9\common\vp9_scale.h" />
-    <ClInclude Include="..\vp9\common\vp9_seg_common.h" />
-    <ClInclude Include="..\vp9\common\vp9_systemdependent.h" />
-    <ClInclude Include="..\vp9\common\vp9_textblit.h" />
-    <ClInclude Include="..\vp9\common\vp9_thread.h" />
-    <ClInclude Include="..\vp9\common\vp9_tile_common.h" />
-    <ClInclude Include="..\vp9\common\vp9_mvref_common.h" />
-    <ClInclude Include="..\vp9\common\vp9_common_data.h" />
-    <ClInclude Include="..\vp9\common\vp9_scan.h" />
-    <ClInclude Include="..\vp9\common\x86\vp9_idct_intrin_sse2.h" />
-    <ClInclude Include="..\vp9\decoder\vp9_decodeframe.h" />
-    <ClInclude Include="..\vp9\decoder\vp9_dthread.h" />
-    <ClInclude Include="..\vp9\decoder\vp9_reader.h" />
-    <ClInclude Include="..\vp9\decoder\vp9_read_bit_buffer.h" />
-    <ClInclude Include="..\vp9\decoder\vp9_decodemv.h" />
-    <ClInclude Include="..\vp9\decoder\vp9_detokenize.h" />
-    <ClInclude Include="..\vp9\decoder\vp9_decoder.h" />
-    <ClInclude Include="..\vp9\decoder\vp9_dsubexp.h" />
-    <ClInclude Include="..\vpx_ports\emmintrin_compat.h" />
-    <ClInclude Include="..\vpx_ports\mem_ops.h" />
-    <ClInclude Include="..\vpx_ports\mem_ops_aligned.h" />
-    <ClInclude Include="..\vpx_ports\vpx_once.h" />
-    <ClInclude Include="..\vpx_scale_rtcd.h" />
-    <ClInclude Include="..\vp9_rtcd.h" />
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="..\vpx\vpx_codec.mk" />
-  </ItemGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
-  <ImportGroup Label="ExtensionTargets">
-  </ImportGroup>
-</Project>
\ No newline at end of file
diff --git a/src/third_party/libvpx_gpu/vp9-dec-core/build/vpx-dec-coreVS13.vcxproj.filters b/src/third_party/libvpx_gpu/vp9-dec-core/build/vpx-dec-coreVS13.vcxproj.filters
deleted file mode 100644
index be08b3e..0000000
--- a/src/third_party/libvpx_gpu/vp9-dec-core/build/vpx-dec-coreVS13.vcxproj.filters
+++ /dev/null
@@ -1,276 +0,0 @@
-﻿<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <ItemGroup>
-    <ClCompile Include="..\vpx\src\vpx_decoder.c" />
-    <ClCompile Include="..\vpx\src\vpx_encoder.c" />
-    <ClCompile Include="..\vpx\src\vpx_codec.c" />
-    <ClCompile Include="..\vpx\src\vpx_image.c" />
-    <ClCompile Include="..\vpx\src\vpx_psnr.c" />
-    <ClCompile Include="..\vpx_mem\vpx_mem.c" />
-    <ClCompile Include="..\vpx_scale\generic\vpx_scale.c" />
-    <ClCompile Include="..\vpx_scale\generic\yv12config.c" />
-    <ClCompile Include="..\vpx_scale\generic\yv12extend.c" />
-    <ClCompile Include="..\vpx_scale\generic\gen_scalers.c" />
-    <ClCompile Include="..\vpx_scale\vpx_scale_asm_offsets.c" />
-    <ClCompile Include="..\vpx_scale\vpx_scale_rtcd.c" />
-    <ClCompile Include="..\vp9\common\vp9_alloccommon.c" />
-    <ClCompile Include="..\vp9\common\vp9_blockd.c" />
-    <ClCompile Include="..\vp9\common\vp9_convolve.c" />
-    <ClCompile Include="..\vp9\common\vp9_debugmodes.c" />
-    <ClCompile Include="..\vp9\common\vp9_entropy.c" />
-    <ClCompile Include="..\vp9\common\vp9_entropymode.c" />
-    <ClCompile Include="..\vp9\common\vp9_entropymv.c" />
-    <ClCompile Include="..\vp9\common\vp9_filter.c" />
-    <ClCompile Include="..\vp9\common\vp9_frame_buffers.c" />
-    <ClCompile Include="..\vp9\common\vp9_idct.c" />
-    <ClCompile Include="..\vp9\common\vp9_pred_common.c" />
-    <ClCompile Include="..\vp9\common\vp9_prob.c" />
-    <ClCompile Include="..\vp9\common\vp9_rtcd.c" />
-    <ClCompile Include="..\vp9\common\vp9_scale.c" />
-    <ClCompile Include="..\vp9\common\vp9_seg_common.c" />
-    <ClCompile Include="..\vp9\common\vp9_thread.c" />
-    <ClCompile Include="..\vp9\common\vp9_tile_common.c" />
-    <ClCompile Include="..\vp9\common\vp9_loopfilter.c" />
-    <ClCompile Include="..\vp9\common\vp9_loopfilter_filters.c" />
-    <ClCompile Include="..\vp9\common\vp9_mvref_common.c" />
-    <ClCompile Include="..\vp9\common\vp9_quant_common.c" />
-    <ClCompile Include="..\vp9\common\vp9_reconinter.c" />
-    <ClCompile Include="..\vp9\common\vp9_reconintra.c" />
-    <ClCompile Include="..\vp9\common\vp9_common_data.c" />
-    <ClCompile Include="..\vp9\common\vp9_scan.c" />
-    <ClCompile Include="..\vp9\common\x86\vp9_asm_stubs.c" />
-    <ClCompile Include="..\vp9\common\x86\vp9_loopfilter_intrin_sse2.c" />
-    <ClCompile Include="..\vp9\common\x86\vp9_idct_intrin_sse2.c" />
-    <ClCompile Include="..\vp9\common\x86\vp9_idct_intrin_ssse3.c" />
-    <ClCompile Include="..\vp9\vp9_dx_iface.c" />
-    <ClCompile Include="..\vp9\decoder\vp9_decodemv.c" />
-    <ClCompile Include="..\vp9\decoder\vp9_decodeframe.c" />
-    <ClCompile Include="..\vp9\decoder\vp9_detokenize.c" />
-    <ClCompile Include="..\vp9\decoder\vp9_dthread.c" />
-    <ClCompile Include="..\vp9\decoder\vp9_reader.c" />
-    <ClCompile Include="..\vp9\decoder\vp9_read_bit_buffer.c" />
-    <ClCompile Include="..\vp9\decoder\vp9_decoder.c" />
-    <ClCompile Include="..\vp9\decoder\vp9_dsubexp.c" />
-    <ClCompile Include="..\vp9\decoder\vp9lux_alt_inter_ocl.c">
-      <Filter>lux</Filter>
-    </ClCompile>
-    <ClCompile Include="..\vp9\decoder\interop\vp9lux_cl_wrapper.c">
-      <Filter>lux</Filter>
-    </ClCompile>
-    <ClCompile Include="..\vp9\decoder\vp9lux_decode_block.c">
-      <Filter>lux</Filter>
-    </ClCompile>
-    <ClCompile Include="..\vp9\decoder\vp9lux_inter_ocl.c">
-      <Filter>lux</Filter>
-    </ClCompile>
-    <ClCompile Include="..\vp9\decoder\interop\vp9lux_interop.c">
-      <Filter>lux</Filter>
-    </ClCompile>
-    <ClCompile Include="..\vp9\decoder\vp9lux_intra_ocl.c">
-      <Filter>lux</Filter>
-    </ClCompile>
-    <ClCompile Include="..\vp9\decoder\vp9lux_loopfilter_ocl.c">
-      <Filter>lux</Filter>
-    </ClCompile>
-    <ClCompile Include="..\vp9\decoder\vp9lux_mem_cuda.c">
-      <Filter>lux</Filter>
-    </ClCompile>
-    <ClCompile Include="..\vp9\decoder\vp9lux_ocl.c">
-      <Filter>lux</Filter>
-    </ClCompile>
-    <ClCompile Include="..\vp9\decoder\vp9lux_ocl_mem_amd.c">
-      <Filter>lux</Filter>
-    </ClCompile>
-    <ClCompile Include="..\vp9\decoder\vp9lux_ocl_mem_generic.c">
-      <Filter>lux</Filter>
-    </ClCompile>
-    <ClCompile Include="..\vp9\decoder\vp9lux_ocl_programs.c">
-      <Filter>lux</Filter>
-    </ClCompile>
-    <ClCompile Include="..\vp9\decoder\vp9lux_reconinter_cl.c">
-      <Filter>lux</Filter>
-    </ClCompile>
-    <ClCompile Include="..\vp9\decoder\vp9lux_thread.c">
-      <Filter>lux</Filter>
-    </ClCompile>
-    <ClCompile Include="..\vp9\decoder\vp9lux_transform_ocl.c">
-      <Filter>lux</Filter>
-    </ClCompile>
-    <ClCompile Include="..\vp9\common\x86\vp9_subpixel_8t_intrin_ssse3.c" />
-  </ItemGroup>
-  <ItemGroup>
-    <ClInclude Include="..\vpx\vpx_decoder.h" />
-    <ClInclude Include="..\vpx\vpx_encoder.h" />
-    <ClInclude Include="..\vpx\internal\vpx_codec_internal.h" />
-    <ClInclude Include="..\vpx\internal\vpx_psnr.h" />
-    <ClInclude Include="..\vpx\vpx_codec.h" />
-    <ClInclude Include="..\vpx\vpx_frame_buffer.h" />
-    <ClInclude Include="..\vpx\vpx_image.h" />
-    <ClInclude Include="..\vpx\vpx_integer.h" />
-    <ClInclude Include="..\vpx_mem\vpx_mem.h" />
-    <ClInclude Include="..\vpx_mem\include\vpx_mem_intrnl.h" />
-    <ClInclude Include="..\vpx_scale\yv12config.h" />
-    <ClInclude Include="..\vpx_scale\vpx_scale.h" />
-    <ClInclude Include="..\vpx_ports\asm_offsets.h" />
-    <ClInclude Include="..\vpx_ports\mem.h" />
-    <ClInclude Include="..\vpx_ports\vpx_timer.h" />
-    <ClInclude Include="..\vpx_ports\x86.h" />
-    <ClInclude Include="..\vp9\vp9_iface_common.h" />
-    <ClInclude Include="..\vp9\common\vp9_ppflags.h" />
-    <ClInclude Include="..\vp9\common\vp9_convolve.h" />
-    <ClInclude Include="..\vp9\common\vp9_filter.h" />
-    <ClInclude Include="..\vp9\common\vp9_frame_buffers.h" />
-    <ClInclude Include="..\vp9\common\vp9_alloccommon.h" />
-    <ClInclude Include="..\vp9\common\vp9_blockd.h" />
-    <ClInclude Include="..\vp9\common\vp9_common.h" />
-    <ClInclude Include="..\vp9\common\vp9_entropy.h" />
-    <ClInclude Include="..\vp9\common\vp9_entropymode.h" />
-    <ClInclude Include="..\vp9\common\vp9_entropymv.h" />
-    <ClInclude Include="..\vp9\common\vp9_enums.h" />
-    <ClInclude Include="..\vp9\common\vp9_idct.h" />
-    <ClInclude Include="..\vp9\common\vp9_loopfilter.h" />
-    <ClInclude Include="..\vp9\common\vp9_mv.h" />
-    <ClInclude Include="..\vp9\common\vp9_pred_common.h" />
-    <ClInclude Include="..\vp9\common\vp9_prob.h" />
-    <ClInclude Include="..\vp9\common\vp9_quant_common.h" />
-    <ClInclude Include="..\vp9\common\vp9_reconinter.h" />
-    <ClInclude Include="..\vp9\common\vp9_reconintra.h" />
-    <ClInclude Include="..\vp9\common\vp9_scale.h" />
-    <ClInclude Include="..\vp9\common\vp9_seg_common.h" />
-    <ClInclude Include="..\vp9\common\vp9_systemdependent.h" />
-    <ClInclude Include="..\vp9\common\vp9_textblit.h" />
-    <ClInclude Include="..\vp9\common\vp9_thread.h" />
-    <ClInclude Include="..\vp9\common\vp9_tile_common.h" />
-    <ClInclude Include="..\vp9\common\vp9_mvref_common.h" />
-    <ClInclude Include="..\vp9\common\vp9_common_data.h" />
-    <ClInclude Include="..\vp9\common\vp9_scan.h" />
-    <ClInclude Include="..\vp9\common\x86\vp9_idct_intrin_sse2.h" />
-    <ClInclude Include="..\vp9\decoder\vp9_decodeframe.h" />
-    <ClInclude Include="..\vp9\decoder\vp9_dthread.h" />
-    <ClInclude Include="..\vp9\decoder\vp9_reader.h" />
-    <ClInclude Include="..\vp9\decoder\vp9_read_bit_buffer.h" />
-    <ClInclude Include="..\vp9\decoder\vp9_decodemv.h" />
-    <ClInclude Include="..\vp9\decoder\vp9_detokenize.h" />
-    <ClInclude Include="..\vp9\decoder\vp9_decoder.h" />
-    <ClInclude Include="..\vp9\decoder\vp9_dsubexp.h" />
-    <ClInclude Include="..\vpx_ports\emmintrin_compat.h" />
-    <ClInclude Include="..\vpx_ports\mem_ops.h" />
-    <ClInclude Include="..\vpx_ports\mem_ops_aligned.h" />
-    <ClInclude Include="..\vpx_ports\vpx_once.h" />
-    <ClInclude Include="..\vpx_scale_rtcd.h" />
-    <ClInclude Include="..\vp9_rtcd.h" />
-    <ClInclude Include="..\vp9\decoder\vp9lux_types.h">
-      <Filter>lux</Filter>
-    </ClInclude>
-    <ClInclude Include="..\vp9\decoder\vp9lux_alt_inter_ocl.h">
-      <Filter>lux</Filter>
-    </ClInclude>
-    <ClInclude Include="..\vp9\decoder\interop\vp9lux_cl_wrapper.h">
-      <Filter>lux</Filter>
-    </ClInclude>
-    <ClInclude Include="..\vp9\decoder\vp9lux_decode_block.h">
-      <Filter>lux</Filter>
-    </ClInclude>
-    <ClInclude Include="..\vp9\decoder\vp9lux_frame_struct.h">
-      <Filter>lux</Filter>
-    </ClInclude>
-    <ClInclude Include="..\vp9\decoder\vp9lux_inter_ocl.h">
-      <Filter>lux</Filter>
-    </ClInclude>
-    <ClInclude Include="..\vp9\decoder\interop\vp9lux_interop.h">
-      <Filter>lux</Filter>
-    </ClInclude>
-    <ClInclude Include="..\vp9\decoder\vp9lux_intra_modes_table_binary.h">
-      <Filter>lux</Filter>
-    </ClInclude>
-    <ClInclude Include="..\vp9\decoder\vp9lux_intra_ocl.h">
-      <Filter>lux</Filter>
-    </ClInclude>
-    <ClInclude Include="..\vp9\common\vp9lux_log.h">
-      <Filter>lux</Filter>
-    </ClInclude>
-    <ClInclude Include="..\vp9\decoder\vp9lux_loopfilter_ocl.h">
-      <Filter>lux</Filter>
-    </ClInclude>
-    <ClInclude Include="..\vp9\decoder\vp9lux_ocl.h">
-      <Filter>lux</Filter>
-    </ClInclude>
-    <ClInclude Include="..\vp9\decoder\vp9lux_ocl_binary.h">
-      <Filter>lux</Filter>
-    </ClInclude>
-    <ClInclude Include="..\vp9\decoder\vp9lux_ocl_programs.h">
-      <Filter>lux</Filter>
-    </ClInclude>
-    <ClInclude Include="..\vp9\decoder\vp9lux_reconinter_cl.h">
-      <Filter>lux</Filter>
-    </ClInclude>
-    <ClInclude Include="..\vp9\decoder\vp9lux_thread.h">
-      <Filter>lux</Filter>
-    </ClInclude>
-    <ClInclude Include="..\vp9\decoder\vp9lux_transform_ocl.h">
-      <Filter>lux</Filter>
-    </ClInclude>
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="..\vpx.def" />
-    <None Include="..\vpx\vpx_codec.mk" />
-    <None Include="..\vp9\decoder\kernels\altinter.cl">
-      <Filter>lux\kernels</Filter>
-    </None>
-    <None Include="..\vp9\decoder\kernels\altinter_intel.cl">
-      <Filter>lux\kernels</Filter>
-    </None>
-    <None Include="..\vp9\decoder\kernels\alttransform.cl">
-      <Filter>lux\kernels</Filter>
-    </None>
-    <None Include="..\vp9\decoder\kernels\interpred8x8kernel.cl">
-      <Filter>lux\kernels</Filter>
-    </None>
-    <None Include="..\vp9\decoder\kernels\intra.cl">
-      <Filter>lux\kernels</Filter>
-    </None>
-    <None Include="..\vp9\decoder\kernels\intra_intel.cl">
-      <Filter>lux\kernels</Filter>
-    </None>
-    <None Include="..\vp9\decoder\kernels\loopfilter.cl">
-      <Filter>lux\kernels</Filter>
-    </None>
-    <None Include="..\vp9\decoder\kernels\loopfilter_intel.cl">
-      <Filter>lux\kernels</Filter>
-    </None>
-    <None Include="..\vp9\decoder\kernels\fastinterpred8x8kernel.cl">
-      <Filter>lux\kernels</Filter>
-    </None>
-    <None Include="..\vp9\decoder\kernels\transform.cl">
-      <Filter>lux\kernels</Filter>
-    </None>
-  </ItemGroup>
-  <ItemGroup>
-    <Filter Include="lux">
-      <UniqueIdentifier>{9c8917ac-b928-40c6-b3e4-6014d514ece6}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="lux\kernels">
-      <UniqueIdentifier>{7e8d8f3b-6882-4b26-a6a1-9d61b33b1f82}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="asm">
-      <UniqueIdentifier>{6c274781-a394-48cf-baf1-485def749ece}</UniqueIdentifier>
-    </Filter>
-  </ItemGroup>
-  <ItemGroup>
-    <CustomBuild Include="..\vpx_ports\emms.asm">
-      <Filter>asm</Filter>
-    </CustomBuild>
-    <CustomBuild Include="..\vp9\common\x86\vp9_loopfilter_mmx.asm">
-      <Filter>asm</Filter>
-    </CustomBuild>
-    <CustomBuild Include="..\vp9\common\x86\vp9_copy_sse2.asm">
-      <Filter>asm</Filter>
-    </CustomBuild>
-    <CustomBuild Include="..\vp9\common\x86\vp9_intrapred_sse2.asm">
-      <Filter>asm</Filter>
-    </CustomBuild>
-    <CustomBuild Include="..\vp9\common\x86\vp9_intrapred_ssse3.asm">
-      <Filter>asm</Filter>
-    </CustomBuild>
-  </ItemGroup>
-</Project>
\ No newline at end of file
diff --git a/src/third_party/libvpx_gpu/vp9-dec-test/ErrorResilienceTest/ErrorResilienceTest.vcxproj b/src/third_party/libvpx_gpu/vp9-dec-test/ErrorResilienceTest/ErrorResilienceTest.vcxproj
deleted file mode 100644
index d676550..0000000
--- a/src/third_party/libvpx_gpu/vp9-dec-test/ErrorResilienceTest/ErrorResilienceTest.vcxproj
+++ /dev/null
@@ -1,102 +0,0 @@
-﻿<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <ItemGroup Label="ProjectConfigurations">
-    <ProjectConfiguration Include="Debug|ORBIS">
-      <Configuration>Debug</Configuration>
-      <Platform>ORBIS</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Release|ORBIS">
-      <Configuration>Release</Configuration>
-      <Platform>ORBIS</Platform>
-    </ProjectConfiguration>
-  </ItemGroup>
-  <PropertyGroup Label="Globals">
-    <VCTargetsPath Condition="'$(VCTargetsPath12)' != '' and '$(VSVersion)' == '' and '$(VisualStudioVersion)' == ''">$(VCTargetsPath12)</VCTargetsPath>
-    <ProjectGuid>{F216E2AC-3265-4071-9F17-709D747FF1D1}</ProjectGuid>
-  </PropertyGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'" Label="Configuration">
-    <ConfigurationType>Application</ConfigurationType>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'" Label="Configuration">
-    <ConfigurationType>Application</ConfigurationType>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
-    <PlatformToolset>v120</PlatformToolset>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
-    <PlatformToolset>v120</PlatformToolset>
-  </PropertyGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
-  <PropertyGroup Condition="'$(DebuggerFlavor)'=='ORBISDebugger'" Label="OverrideDebuggerDefaults">
-    <!--LocalDebuggerCommand>$(TargetPath)</LocalDebuggerCommand-->
-    <!--LocalDebuggerCommandArguments></LocalDebuggerCommandArguments-->
-    <!--LocalDebuggerTarget></LocalDebuggerTarget-->
-    <!--LocalDebuggerWorkingDirectory>$(ProjectDir)</LocalDebuggerWorkingDirectory-->
-    <!--LocalRunCommandLine></LocalRunCommandLine-->
-  </PropertyGroup>
-  <ImportGroup Label="ExtensionSettings">
-    <Import Project="$(VCTargetsPath)\BuildCustomizations\OrbisWavePsslc.props" />
-    <Import Project="$(VCTargetsPath)\BuildCustomizations\SCU.props" />
-  </ImportGroup>
-  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-  </ImportGroup>
-  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-  </ImportGroup>
-  <PropertyGroup Label="UserMacros" />
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">
-    <OutDir>$(SolutionDir)bin\$(Configuration)\</OutDir>
-    <IntDir>$(SolutionDir)obj\$(ProjectName)\$(Configuration)\</IntDir>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">
-    <OutDir>$(SolutionDir)bin\$(Configuration)\</OutDir>
-    <IntDir>$(SolutionDir)obj\$(ProjectName)\$(Configuration)\</IntDir>
-  </PropertyGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">
-    <ClCompile>
-      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions);</PreprocessorDefinitions>
-      <GenerateDebugInformation>true</GenerateDebugInformation>
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>
-      <AdditionalIncludeDirectories>../../vp9-dec-core;../../vp9-dec-core/build;../libwebm;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-    </ClCompile>
-    <Link>
-      <AdditionalDependencies>vp9-dec-core$(PlatformArchitecture).a;libSceUserService_stub_weak.a;libScePerf_stub_weak.a;libSceGnmDriver_stub_weak.a;libScePm4Dump.a;libSceGnf.a;libSceShaderBinary.a;libSceGpuAddress.a;libSceGnmx_debug.a;libSceGnm_debug.a;libScePosix_stub_weak.a;libScePad_stub_weak.a;libSceVideoOut_stub_weak.a</AdditionalDependencies>
-      <AdditionalLibraryDirectories>$(SolutionDir)lib\$(Configuration)</AdditionalLibraryDirectories>
-    </Link>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">
-    <ClCompile>
-      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions);</PreprocessorDefinitions>
-      <OptimizationLevel>Level2</OptimizationLevel>
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>
-      <AdditionalIncludeDirectories>../../vp9-dec-core;../../vp9-dec-core/build;../libwebm;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <GenerateDebugInformation>true</GenerateDebugInformation>
-    </ClCompile>
-    <Link>
-      <AdditionalDependencies>vp9-dec-core$(PlatformArchitecture).a;libSceUserService_stub_weak.a;libScePerf_stub_weak.a;libSceGnmDriver_stub_weak.a;libScePm4Dump.a;libSceGnf.a;libSceShaderBinary.a;libSceGpuAddress.a;libSceGnmx_debug.a;libSceGnm_debug.a;libScePosix_stub_weak.a;libScePad_stub_weak.a;libSceVideoOut_stub_weak.a</AdditionalDependencies>
-      <AdditionalLibraryDirectories>$(SolutionDir)lib\$(Configuration)</AdditionalLibraryDirectories>
-    </Link>
-  </ItemDefinitionGroup>
-  <ItemGroup>
-    <ClCompile Include="..\libwebm\mkvparser\mkvparser.cc" />
-    <ClCompile Include="..\libwebm\mkvparser\mkvreader.cc" />
-    <ClCompile Include="..\vpxdec\webmdec.cc" />
-    <ClCompile Include="errors_main.cpp" />
-    <ClCompile Include="user_malloc.cpp" />
-  </ItemGroup>
-  <ItemGroup>
-    <ClInclude Include="..\libwebm\mkvparser\mkvparser.h" />
-    <ClInclude Include="..\libwebm\mkvparser\mkvreader.h" />
-    <ClInclude Include="ivf_video_source.h" />
-    <ClInclude Include="video_source.h" />
-    <ClInclude Include="webm_video_source.h" />
-  </ItemGroup>
-  <Import Condition="'$(ConfigurationType)' == 'Makefile' and Exists('$(VCTargetsPath)\Platforms\$(Platform)\SCE.Makefile.$(Platform).targets')" Project="$(VCTargetsPath)\Platforms\$(Platform)\SCE.Makefile.$(Platform).targets" />
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
-  <ImportGroup Label="ExtensionTargets">
-    <Import Project="$(VCTargetsPath)\BuildCustomizations\OrbisWavePsslc.targets" />
-    <Import Project="$(VCTargetsPath)\BuildCustomizations\SCU.targets" />
-  </ImportGroup>
-</Project>
\ No newline at end of file
diff --git a/src/third_party/libvpx_gpu/vp9-dec-test/ErrorResilienceTest/ErrorResilienceTest.vcxproj.filters b/src/third_party/libvpx_gpu/vp9-dec-test/ErrorResilienceTest/ErrorResilienceTest.vcxproj.filters
deleted file mode 100644
index d9ee00d..0000000
--- a/src/third_party/libvpx_gpu/vp9-dec-test/ErrorResilienceTest/ErrorResilienceTest.vcxproj.filters
+++ /dev/null
@@ -1,47 +0,0 @@
-﻿<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <ItemGroup>
-    <Filter Include="Source Files">
-      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
-      <Extensions>cpp;c;cxx;cc;s;asm</Extensions>
-    </Filter>
-    <Filter Include="Header Files">
-      <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
-      <Extensions>h;hpp</Extensions>
-    </Filter>
-  </ItemGroup>
-  <ItemGroup>
-    <ClCompile Include="errors_main.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\vpxdec\webmdec.cc">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="user_malloc.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\libwebm\mkvparser\mkvparser.cc">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\libwebm\mkvparser\mkvreader.cc">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-  </ItemGroup>
-  <ItemGroup>
-    <ClInclude Include="ivf_video_source.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="video_source.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="webm_video_source.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\libwebm\mkvparser\mkvparser.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\libwebm\mkvparser\mkvreader.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-  </ItemGroup>
-</Project>
\ No newline at end of file
diff --git a/src/third_party/libvpx_gpu/vp9-dec-test/PS4/common/source/sampleutil/libSceSampleUtil.sln b/src/third_party/libvpx_gpu/vp9-dec-test/PS4/common/source/sampleutil/libSceSampleUtil.sln
deleted file mode 100644
index 14f4a95..0000000
--- a/src/third_party/libvpx_gpu/vp9-dec-test/PS4/common/source/sampleutil/libSceSampleUtil.sln
+++ /dev/null
@@ -1,21 +0,0 @@
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 2013
-VisualStudioVersion = 12.0.40629.0
-MinimumVisualStudioVersion = 10.0.40219.1
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libSceSampleUtil", "libSceSampleUtil.vcxproj", "{30A1B994-C2C6-485F-911B-FB4674366DA8}"
-EndProject
-Global
-	GlobalSection(SolutionConfigurationPlatforms) = preSolution
-		Debug|ORBIS = Debug|ORBIS
-		Release|ORBIS = Release|ORBIS
-	EndGlobalSection
-	GlobalSection(ProjectConfigurationPlatforms) = postSolution
-		{30A1B994-C2C6-485F-911B-FB4674366DA8}.Debug|ORBIS.ActiveCfg = Debug|ORBIS
-		{30A1B994-C2C6-485F-911B-FB4674366DA8}.Debug|ORBIS.Build.0 = Debug|ORBIS
-		{30A1B994-C2C6-485F-911B-FB4674366DA8}.Release|ORBIS.ActiveCfg = Release|ORBIS
-		{30A1B994-C2C6-485F-911B-FB4674366DA8}.Release|ORBIS.Build.0 = Release|ORBIS
-	EndGlobalSection
-	GlobalSection(SolutionProperties) = preSolution
-		HideSolutionNode = FALSE
-	EndGlobalSection
-EndGlobal
diff --git a/src/third_party/libvpx_gpu/vp9-dec-test/PS4/common/source/sampleutil/libSceSampleUtil.vcxproj b/src/third_party/libvpx_gpu/vp9-dec-test/PS4/common/source/sampleutil/libSceSampleUtil.vcxproj
deleted file mode 100644
index edeb2e5..0000000
--- a/src/third_party/libvpx_gpu/vp9-dec-test/PS4/common/source/sampleutil/libSceSampleUtil.vcxproj
+++ /dev/null
@@ -1,1301 +0,0 @@
-﻿<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <ItemGroup Label="ProjectConfigurations">
-    <ProjectConfiguration Include="Debug|ORBIS">
-      <Configuration>Debug</Configuration>
-      <Platform>ORBIS</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Release|ORBIS">
-      <Configuration>Release</Configuration>
-      <Platform>ORBIS</Platform>
-    </ProjectConfiguration>
-  </ItemGroup>
-  <PropertyGroup Label="Globals">
-    <ProjectGuid>{30A1B994-C2C6-485F-911B-FB4674366DA8}</ProjectGuid>
-    <ProjectName>libSceSampleUtil</ProjectName>
-  </PropertyGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'" Label="Configuration">
-    <ConfigurationType>StaticLibrary</ConfigurationType>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'" Label="Configuration">
-    <ConfigurationType>StaticLibrary</ConfigurationType>
-  </PropertyGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
-  <ImportGroup Label="ExtensionSettings">
-  </ImportGroup>
-  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-  </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-  </ImportGroup>
-  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-  </ImportGroup>
-  <PropertyGroup Label="UserMacros" />
-  <PropertyGroup />
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">
-    <ClCompile>
-      <PreprocessorDefinitions>_DEBUG;SCE_SAMPLE_UTIL_ASSERTS_ENABLED=1;_UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <GenerateDebugInformation>true</GenerateDebugInformation>
-<AdditionalIncludeDirectories>$(ProjectDir)\..\..\include;$(ProjectDir)\..\..\include\external\tinyxml;$(ProjectDir)\..\sampleutil;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <AdditionalOptions>-frtti  -Wno-unknown-pragmas  -Wnull-conversion %(AdditionalOptions)</AdditionalOptions>
-      <MultiProcessorCompilation>true</MultiProcessorCompilation>
-    </ClCompile>
-    <Lib>
-      <OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
-    </Lib>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
-    <ClCompile>
-      <PreprocessorDefinitions>_DEBUG;SCE_SAMPLE_UTIL_ASSERTS_ENABLED=1;SCE_SAMPLE_UTIL_BUILD;SCE_DBG_LOGGING_ENABLED=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <GenerateDebugInformation>true</GenerateDebugInformation>
-      <AdditionalIncludeDirectories>$(ProjectDir)\..\..\include;$(ProjectDir)\..\..\include\external\tinyxml;$(ProjectDir)\..\sampleutil;$(SCE_PSP2_SDK_DIR)\target\include_common;$(CG_INC_PATH);$(SCE_PSP2_SDK_DIR)\host_tools\include;$(SCE_ORBIS_SDK_DIR)\host_tools\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <MultiProcessorCompilation>true</MultiProcessorCompilation>
-      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
-    </ClCompile>
-    <Lib>
-      <OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
-    </Lib>
-    <Link>
-      <AdditionalLibraryDirectories>$(CG_LIB64_PATH);$(SCE_ORBIS_SDK_DIR)\host_tools\lib;$(SCE_ORBIS_SAMPLE_DIR)\sample_code\common\lib.x64\external;$(SCE_PSP2_SDK_DIR)\host_tools\lib.x64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
-      <AdditionalDependencies>tinyxml.lib;%(AdditionalDependencies)</AdditionalDependencies>
-      <GenerateDebugInformation>true</GenerateDebugInformation>
-    </Link>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">
-    <ClCompile>
-      <PreprocessorDefinitions>SCE_SAMPLE_UTIL_ASSERTS_ENABLED=1;SCE_SAMPLE_UTIL_RELEASE=1;_UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <OptimizationLevel>Level2</OptimizationLevel>
-<AdditionalIncludeDirectories>$(ProjectDir)\..\..\include;$(ProjectDir)\..\..\include\external\tinyxml;$(ProjectDir)\..\sampleutil;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <AdditionalOptions>-frtti  -Wno-unknown-pragmas %(AdditionalOptions)</AdditionalOptions>
-      <MultiProcessorCompilation>true</MultiProcessorCompilation>
-      <Warnings>MoreWarnings</Warnings>
-      <GenerateDebugInformation>true</GenerateDebugInformation>
-    </ClCompile>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
-    <ClCompile>
-      <PreprocessorDefinitions>SCE_SAMPLE_UTIL_ASSERTS_ENABLED=1;SCE_SAMPLE_UTIL_BUILD;SCE_DBG_LOGGING_ENABLED=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <OptimizationLevel>Level2</OptimizationLevel>
-      <AdditionalIncludeDirectories>$(ProjectDir)\..\..\include;$(ProjectDir)\..\..\include\external\tinyxml;$(ProjectDir)\..\sampleutil;$(SCE_PSP2_SDK_DIR)\target\include_common;$(CG_INC_PATH);$(SCE_PSP2_SDK_DIR)\host_tools\include;$(SCE_ORBIS_SDK_DIR)\host_tools\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <MultiProcessorCompilation>true</MultiProcessorCompilation>
-    </ClCompile>
-    <Link>
-      <AdditionalLibraryDirectories>$(CG_LIB64_PATH);$(SCE_ORBIS_SDK_DIR)\host_tools\lib;$(SCE_ORBIS_SAMPLE_DIR)\sample_code\common\lib.x64\external;$(SCE_PSP2_SDK_DIR)\host_tools\lib.x64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
-      <AdditionalDependencies>tinyxml.lib;%(AdditionalDependencies)</AdditionalDependencies>
-      <GenerateDebugInformation>true</GenerateDebugInformation>
-    </Link>
-  </ItemDefinitionGroup>
-  <ItemGroup>
-    <ClInclude Include="..\..\include\sampleutil.h" />
-    <ClInclude Include="..\..\include\sampleutil\audio.h" />
-    <ClInclude Include="..\..\include\sampleutil\audio\context.h" />
-    <ClInclude Include="..\..\include\sampleutil\audio\data.h" />
-    <ClInclude Include="..\..\include\sampleutil\audio\voice.h" />
-    <ClInclude Include="..\..\include\sampleutil\debug\console.h" />
-    <ClInclude Include="..\..\include\sampleutil\debug\menu.h" />
-    <ClInclude Include="..\..\include\sampleutil\graphics.h" />
-    <ClInclude Include="..\..\include\sampleutil\graphics\buffer.h" />
-    <ClInclude Include="..\..\include\sampleutil\graphics\collada.h" />
-    <ClInclude Include="..\..\include\sampleutil\graphics\collada\collada_animation.h" />
-    <ClInclude Include="..\..\include\sampleutil\graphics\collada\collada_base.h" />
-    <ClInclude Include="..\..\include\sampleutil\graphics\collada\collada_effect.h" />
-    <ClInclude Include="..\..\include\sampleutil\graphics\collada\collada_geometry.h" />
-    <ClInclude Include="..\..\include\sampleutil\graphics\collada\collada_image.h" />
-    <ClInclude Include="..\..\include\sampleutil\graphics\collada\collada_scene.h" />
-    <ClInclude Include="..\..\include\sampleutil\graphics\constant.h" />
-    <ClInclude Include="..\..\include\sampleutil\graphics\context.h" />
-    <ClInclude Include="..\..\include\sampleutil\graphics\effect.h" />
-    <ClInclude Include="..\..\include\sampleutil\graphics\font.h" />
-    <ClInclude Include="..\..\include\sampleutil\graphics\loader.h" />
-    <ClInclude Include="..\..\include\sampleutil\graphics\platform.h" />
-    <ClInclude Include="..\..\include\sampleutil\graphics\platform_dx11\platform_dx11.h" />
-    <ClInclude Include="..\..\include\sampleutil\graphics\platform_gnm\platform_gnm.h" />
-    <ClInclude Include="..\..\include\sampleutil\graphics\platform_gxm\platform_gxm.h" />
-    <ClInclude Include="..\..\include\sampleutil\graphics\program.h" />
-    <ClInclude Include="..\..\include\sampleutil\graphics\sprite.h" />
-    <ClInclude Include="..\..\include\sampleutil\input.h" />
-    <ClInclude Include="..\..\include\sampleutil\input\controller.h" />
-    <ClInclude Include="..\..\include\sampleutil\input\motion.h" />
-    <ClInclude Include="..\..\include\sampleutil\input\touch.h" />
-    <ClInclude Include="..\..\include\sampleutil\sampleutil_common.h" />
-    <ClInclude Include="..\..\include\sampleutil\sampleutil_error.h" />
-    <ClInclude Include="..\..\include\sampleutil\skeleton.h" />
-    <ClInclude Include="..\..\include\sampleutil\system.h" />
-    <ClInclude Include="audio\audio_internal.h" />
-    <ClInclude Include="audio\ngs2\ngs2_internal.h" />
-    <ClInclude Include="audio\ngs2\ngs2_stream.h" />
-    <ClInclude Include="audio\ngs\ngs_internal.h" />
-    <ClInclude Include="audio\ngs\ngs_module.h" />
-    <ClInclude Include="debug\debug_menu_internal.h" />
-    <ClInclude Include="graphics\collada\collada_internal.h" />
-    <ClInclude Include="graphics\collada\collada_material.h" />
-    <ClInclude Include="graphics\collada\collada_scene.h" />
-    <ClInclude Include="graphics\collada\collada_transform.h" />
-    <ClInclude Include="graphics\collada\collada_util.h" />
-    <ClInclude Include="graphics\collada\dae\dae.h" />
-    <ClInclude Include="graphics\collada\dae\dae_animation.h" />
-    <ClInclude Include="graphics\collada\dae\dae_common.h" />
-    <ClInclude Include="graphics\collada\dae\dae_control.h" />
-    <ClInclude Include="graphics\collada\dae\dae_data_flow.h" />
-    <ClInclude Include="graphics\collada\dae\dae_effect.h" />
-    <ClInclude Include="graphics\collada\dae\dae_geometry.h" />
-    <ClInclude Include="graphics\collada\dae\dae_scene.h" />
-    <ClInclude Include="graphics\collada\dae\dae_transform.h" />
-    <ClInclude Include="graphics\collada\dae\dae_vscene.h" />
-    <ClInclude Include="graphics\constant_internal.h" />
-    <ClInclude Include="graphics\font_internal.h" />
-    <ClInclude Include="graphics\graphics_internal.h" />
-    <ClInclude Include="graphics\image.h" />
-    <ClInclude Include="graphics\platform_dx11\buffer_internal_dx11.h" />
-    <ClInclude Include="graphics\platform_dx11\constant_internal_dx11.h" />
-    <ClInclude Include="graphics\platform_dx11\context_internal_dx11.h" />
-    <ClInclude Include="graphics\platform_dx11\dx11_internal.h" />
-    <ClInclude Include="graphics\platform_dx11\font_win.h" />
-    <ClInclude Include="graphics\platform_dx11\loader_internal_dx11.h" />
-    <ClInclude Include="graphics\platform_dx11\program_internal_dx11.h" />
-    <ClInclude Include="graphics\platform_gnm\buffer_internal_gnm.h" />
-    <ClInclude Include="graphics\platform_gnm\constant_internal_gnm.h" />
-    <ClInclude Include="graphics\platform_gnm\context_internal_gnm.h" />
-    <ClInclude Include="graphics\platform_gnm\font_orbis.h" />
-    <ClInclude Include="graphics\platform_gnm\gnm_internal.h" />
-    <ClInclude Include="graphics\platform_gnm\heap_gnm.h" />
-    <ClInclude Include="graphics\platform_gnm\image_gnm.h" />
-    <ClInclude Include="graphics\platform_gnm\loader_internal_gnm.h" />
-    <ClInclude Include="graphics\platform_gnm\program_internal_gnm.h" />
-    <ClInclude Include="graphics\platform_gxm\buffer_internal_gxm.h" />
-    <ClInclude Include="graphics\platform_gxm\constant_internal_gxm.h" />
-    <ClInclude Include="graphics\platform_gxm\context_internal_gxm.h" />
-    <ClInclude Include="graphics\platform_gxm\font_psp2.h" />
-    <ClInclude Include="graphics\platform_gxm\gxm_internal.h" />
-    <ClInclude Include="graphics\platform_gxm\heap_gxm.h" />
-    <ClInclude Include="graphics\platform_gxm\loader_internal_gxm.h" />
-    <ClInclude Include="graphics\platform_gxm\program_internal_gxm.h" />
-    <ClInclude Include="graphics\platform_gxm\texture_util_gxm.h" />
-    <ClInclude Include="graphics\sprite_internal.h" />
-    <ClInclude Include="input\controller_common.h" />
-    <ClInclude Include="input\pad_common.h" />
-    <ClInclude Include="resource\resource_manager.h" />
-    <ClInclude Include="resource\shader_base.h" />
-    <ClInclude Include="resource\std_cbuffer.h" />
-    <ClInclude Include="sampleutil_internal.h" />
-    <ClInclude Include="stdafx.h" />
-    <ClInclude Include="util\util.h" />
-  </ItemGroup>
-  <ItemGroup>
-    <ClCompile Include="audio\audio.cpp" />
-    <ClCompile Include="audio\audio_data.cpp" />
-    <ClCompile Include="audio\ngs2\ngs2_context.cpp" />
-    <ClCompile Include="audio\ngs2\ngs2_data.cpp" />
-    <ClCompile Include="audio\ngs2\ngs2_rack.cpp" />
-    <ClCompile Include="audio\ngs2\ngs2_stream.cpp" />
-    <ClCompile Include="audio\ngs2\ngs2_thread.cpp" />
-    <ClCompile Include="audio\ngs2\ngs2_voice.cpp" />
-    <ClCompile Include="audio\ngs\ngs_audio_util.cpp" />
-    <ClCompile Include="audio\ngs\ngs_buss.cpp" />
-    <ClCompile Include="audio\ngs\ngs_context.cpp" />
-    <ClCompile Include="audio\ngs\ngs_data.cpp" />
-    <ClCompile Include="audio\ngs\ngs_module.cpp" />
-    <ClCompile Include="audio\ngs\ngs_stream.cpp" />
-    <ClCompile Include="audio\ngs\ngs_voice.cpp" />
-    <ClCompile Include="audio\ngs\ngs_worker_thread.cpp" />
-    <ClCompile Include="debug\console.cpp" />
-    <ClCompile Include="debug\debug_menu_item_group.cpp" />
-    <ClCompile Include="debug\menu.cpp" />
-    <ClCompile Include="graphics\buffer.cpp" />
-    <ClCompile Include="graphics\collada\collada.cpp" />
-    <ClCompile Include="graphics\collada\collada_animation.cpp" />
-    <ClCompile Include="graphics\collada\collada_base.cpp" />
-    <ClCompile Include="graphics\collada\collada_controller.cpp" />
-    <ClCompile Include="graphics\collada\collada_effect.cpp" />
-    <ClCompile Include="graphics\collada\collada_geometry.cpp" />
-    <ClCompile Include="graphics\collada\collada_image.cpp" />
-    <ClCompile Include="graphics\collada\collada_scene.cpp" />
-    <ClCompile Include="graphics\collada\collada_util.cpp" />
-    <ClCompile Include="graphics\collada\dae\dae_animation.cpp" />
-    <ClCompile Include="graphics\collada\dae\dae_control.cpp" />
-    <ClCompile Include="graphics\collada\dae\dae_data_flow.cpp" />
-    <ClCompile Include="graphics\collada\dae\dae_effect.cpp" />
-    <ClCompile Include="graphics\collada\dae\dae_geom.cpp" />
-    <ClCompile Include="graphics\collada\dae\dae_geometry.cpp" />
-    <ClCompile Include="graphics\collada\dae\dae_scene.cpp" />
-    <ClCompile Include="graphics\collada\dae\dae_transform.cpp" />
-    <ClCompile Include="graphics\effect.cpp" />
-    <ClCompile Include="graphics\font.cpp" />
-    <ClCompile Include="graphics\frame_buffer.cpp" />
-    <ClCompile Include="graphics\image.cpp" />
-    <ClCompile Include="graphics\loader.cpp" />
-    <ClCompile Include="graphics\platform_dx11\buffer_dx11.cpp" />
-    <ClCompile Include="graphics\platform_dx11\constant_dx11.cpp" />
-    <ClCompile Include="graphics\platform_dx11\context_dx11.cpp" />
-    <ClCompile Include="graphics\platform_dx11\font_win.cpp" />
-    <ClCompile Include="graphics\platform_dx11\frame_buffer_dx11.cpp" />
-    <ClCompile Include="graphics\platform_dx11\image_dx11.cpp" />
-    <ClCompile Include="graphics\platform_dx11\loader_dx11.cpp" />
-    <ClCompile Include="graphics\platform_dx11\program_dx11.cpp" />
-    <ClCompile Include="graphics\platform_dx11\render_target_dx11.cpp" />
-    <ClCompile Include="graphics\platform_dx11\texture_dx11.cpp" />
-    <ClCompile Include="graphics\platform_gnm\buffer_gnm.cpp" />
-    <ClCompile Include="graphics\platform_gnm\constant_gnm.cpp" />
-    <ClCompile Include="graphics\platform_gnm\context_gnm.cpp" />
-    <ClCompile Include="graphics\platform_gnm\font_orbis.cpp" />
-    <ClCompile Include="graphics\platform_gnm\frame_buffer_gnm.cpp" />
-    <ClCompile Include="graphics\platform_gnm\heap_gnm.cpp" />
-    <ClCompile Include="graphics\platform_gnm\image_gnm.cpp" />
-    <ClCompile Include="graphics\platform_gnm\loader_gnm.cpp" />
-    <ClCompile Include="graphics\platform_gnm\memory_gnm.cpp" />
-    <ClCompile Include="graphics\platform_gnm\program_gnm.cpp" />
-    <ClCompile Include="graphics\platform_gnm\render_target_gnm.cpp" />
-    <ClCompile Include="graphics\platform_gnm\shader_loader_gnm.cpp" />
-    <ClCompile Include="graphics\platform_gnm\texture_gnm.cpp" />
-    <ClCompile Include="graphics\platform_gxm\buffer_gxm.cpp" />
-    <ClCompile Include="graphics\platform_gxm\constant_gxm.cpp" />
-    <ClCompile Include="graphics\platform_gxm\context_gxm.cpp" />
-    <ClCompile Include="graphics\platform_gxm\font_psp2.cpp" />
-    <ClCompile Include="graphics\platform_gxm\frame_buffer_gxm.cpp" />
-    <ClCompile Include="graphics\platform_gxm\heap_gxm.cpp" />
-    <ClCompile Include="graphics\platform_gxm\image_gxm.cpp" />
-    <ClCompile Include="graphics\platform_gxm\loader_gxm.cpp" />
-    <ClCompile Include="graphics\platform_gxm\program_gxm.cpp" />
-    <ClCompile Include="graphics\platform_gxm\render_target_gxm.cpp" />
-    <ClCompile Include="graphics\platform_gxm\texture_gxm.cpp" />
-    <ClCompile Include="graphics\platform_gxm\texture_util_gxm.cpp" />
-    <ClCompile Include="graphics\program.cpp" />
-    <ClCompile Include="graphics\sprite.cpp" />
-    <ClCompile Include="graphics\sprite_effect_2d.cpp" />
-    <ClCompile Include="graphics\texture.cpp" />
-    <ClCompile Include="input\controller_common.cpp" />
-    <ClCompile Include="input\orbis\pad_orbis.cpp" />
-    <ClCompile Include="input\pad_common.cpp" />
-    <ClCompile Include="input\psp2\controller_psp2.cpp" />
-    <ClCompile Include="input\psp2\motion_psp2.cpp" />
-    <ClCompile Include="input\psp2\pad_psp2.cpp" />
-    <ClCompile Include="input\psp2\touch_psp2.cpp" />
-    <ClCompile Include="input\win\controller_win.cpp" />
-    <ClCompile Include="input\win\pad_win.cpp" />
-    <ClCompile Include="input\win\touch_win.cpp" />
-    <ClCompile Include="resource\dllmain.cpp" />
-    <ClCompile Include="resource\resource_manager.cpp" />
-    <ClCompile Include="sampleutil_common.cpp" />
-    <ClCompile Include="skeleton.cpp" />
-    <ClCompile Include="system\orbis\save_data_orbis.cpp" />
-    <ClCompile Include="system\orbis\user_orbis.cpp" />
-    <ClCompile Include="system\psp2\save_data_psp2.cpp" />
-    <ClCompile Include="system\psp2\user_psp2.cpp" />
-    <ClCompile Include="system\win\save_data_win.cpp" />
-    <ClCompile Include="system\win\user_win.cpp" />
-    <ClCompile Include="util\util.cpp" />
-    <ClCompile Include="util\util_streaming.cpp" />
-  </ItemGroup>
-  <ItemGroup>
-    <CustomBuild Include="resource\sampleutil_fill2d_f.pssl">
-      <FileType>Document</FileType>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">if not exist "$(IntDir)" md "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-wave-psslc.exe" -profile sce_ps_orbis "%(FullPath)" -o "$(IntDir)%(Filename).sb"
-pushd "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-objcopy.exe"  -I binary -O elf64-x86-64  -B i386 "%(Filename).sb" "%(Filename)_sb.obj"
-popd</Command>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">if not exist "$(IntDir)" md "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-wave-psslc.exe" -profile sce_ps_orbis "%(FullPath)" -o "$(IntDir)%(Filename).sb"
-pushd "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-objcopy.exe"  -I binary -O elf64-x86-64  -B i386 "%(Filename).sb" "%(Filename)_sb.obj"
-popd</Command>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">if not exist "$(IntDir)" md "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-wave-psslc.exe" -profile sce_ps_orbis "%(FullPath)" -o "$(IntDir)%(Filename).sb"
-pushd "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-objcopy.exe"  -I binary -O elf64-x86-64  -B i386 "%(Filename).sb" "%(Filename)_sb.obj"
-popd</Command>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">$(IntDir)%(Filename)_sb.obj</Outputs>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)%(Filename)_sb.obj</Outputs>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">$(IntDir)%(Filename)_sb.obj</Outputs>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">if not exist "$(IntDir)" md "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-wave-psslc.exe" -profile sce_ps_orbis "%(FullPath)" -o "$(IntDir)%(Filename).sb"
-pushd "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-objcopy.exe"  -I binary -O elf64-x86-64  -B i386 "%(Filename).sb" "%(Filename)_sb.obj"
-popd</Command>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">if not exist "$(IntDir)" md "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-wave-psslc.exe" -profile sce_ps_orbis "%(FullPath)" -o "$(IntDir)%(Filename).sb"
-pushd "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-objcopy.exe"  -I binary -O elf64-x86-64  -B i386 "%(Filename).sb" "%(Filename)_sb.obj"
-popd</Command>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|PSVita'">if not exist "$(IntDir)" md "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-wave-psslc.exe" -profile sce_ps_orbis "%(FullPath)" -o "$(IntDir)%(Filename).sb"
-pushd "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-objcopy.exe"  -I binary -O elf64-x86-64  -B i386 "%(Filename).sb" "%(Filename)_sb.obj"
-popd</Command>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">$(IntDir)%(Filename)_sb.obj;%(Outputs)</Outputs>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)%(Filename)_sb.obj;%(Outputs)</Outputs>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|PSVita'">$(IntDir)%(Filename)_sb.obj;%(Outputs)</Outputs>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">Compiling Fragment Shader: "%(FullPath)"</Message>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Compiling Fragment Shader: "%(FullPath)"</Message>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Release|PSVita'">Compiling Fragment Shader: "%(FullPath)"</Message>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">Compiling Fragment Shader: "%(FullPath)"</Message>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Compiling Fragment Shader: "%(FullPath)"</Message>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">Compiling Fragment Shader: "%(FullPath)"</Message>
-      <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">
-      </AdditionalInputs>
-      <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
-      </AdditionalInputs>
-      <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|PSVita'">
-      </AdditionalInputs>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
-    </CustomBuild>
-    <CustomBuild Include="resource\sampleutil_fill2d_v.pssl">
-      <FileType>Document</FileType>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">if not exist "$(IntDir)" md "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-wave-psslc.exe" -profile sce_vs_vs_orbis "%(FullPath)" -o "$(IntDir)%(Filename).sb"
-pushd "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-objcopy.exe"  -I binary -O elf64-x86-64  -B i386 "%(Filename).sb" "%(Filename)_sb.obj"
-popd</Command>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">if not exist "$(IntDir)" md "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-wave-psslc.exe" -profile sce_vs_vs_orbis "%(FullPath)" -o "$(IntDir)%(Filename).sb"
-pushd "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-objcopy.exe"  -I binary -O elf64-x86-64  -B i386 "%(Filename).sb" "%(Filename)_sb.obj"
-popd</Command>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">if not exist "$(IntDir)" md "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-wave-psslc.exe" -profile sce_vs_vs_orbis "%(FullPath)" -o "$(IntDir)%(Filename).sb"
-pushd "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-objcopy.exe"  -I binary -O elf64-x86-64  -B i386 "%(Filename).sb" "%(Filename)_sb.obj"
-popd</Command>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">$(IntDir)%(Filename)_sb.obj</Outputs>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)%(Filename)_sb.obj</Outputs>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">$(IntDir)%(Filename)_sb.obj</Outputs>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">if not exist "$(IntDir)" md "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-wave-psslc.exe" -profile sce_vs_vs_orbis "%(FullPath)" -o "$(IntDir)%(Filename).sb"
-pushd "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-objcopy.exe"  -I binary -O elf64-x86-64  -B i386 "%(Filename).sb" "%(Filename)_sb.obj"
-popd</Command>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">if not exist "$(IntDir)" md "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-wave-psslc.exe" -profile sce_vs_vs_orbis "%(FullPath)" -o "$(IntDir)%(Filename).sb"
-pushd "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-objcopy.exe"  -I binary -O elf64-x86-64  -B i386 "%(Filename).sb" "%(Filename)_sb.obj"
-popd</Command>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|PSVita'">if not exist "$(IntDir)" md "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-wave-psslc.exe" -profile sce_vs_vs_orbis "%(FullPath)" -o "$(IntDir)%(Filename).sb"
-pushd "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-objcopy.exe"  -I binary -O elf64-x86-64  -B i386 "%(Filename).sb" "%(Filename)_sb.obj"
-popd</Command>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">$(IntDir)%(Filename)_sb.obj;%(Outputs)</Outputs>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)%(Filename)_sb.obj;%(Outputs)</Outputs>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|PSVita'">$(IntDir)%(Filename)_sb.obj;%(Outputs)</Outputs>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">Compiling Vertex Shader: "%(FullPath)"</Message>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Compiling Vertex Shader: "%(FullPath)"</Message>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Release|PSVita'">Compiling Vertex Shader: "%(FullPath)"</Message>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">Compiling Vertex Shader: "%(FullPath)"</Message>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Compiling Vertex Shader: "%(FullPath)"</Message>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">Compiling Vertex Shader: "%(FullPath)"</Message>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
-    </CustomBuild>
-  </ItemGroup>
-  <ItemGroup>
-    <CustomBuild Include="resource\sampleutil_clear_p.pssl">
-      <FileType>Document</FileType>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">if not exist "$(IntDir)" md "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-wave-psslc.exe" -profile sce_ps_orbis "%(FullPath)" -o "$(IntDir)%(Filename).sb"
-pushd "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-objcopy.exe"  -I binary -O elf64-x86-64  -B i386 "%(Filename).sb" "%(Filename)_sb.obj"
-popd</Command>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">if not exist "$(IntDir)" md "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-wave-psslc.exe" -profile sce_ps_orbis "%(FullPath)" -o "$(IntDir)%(Filename).sb"
-pushd "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-objcopy.exe"  -I binary -O elf64-x86-64  -B i386 "%(Filename).sb" "%(Filename)_sb.obj"
-popd</Command>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">if not exist "$(IntDir)" md "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-wave-psslc.exe" -profile sce_ps_orbis "%(FullPath)" -o "$(IntDir)%(Filename).sb"
-pushd "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-objcopy.exe"  -I binary -O elf64-x86-64  -B i386 "%(Filename).sb" "%(Filename)_sb.obj"
-popd</Command>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">$(IntDir)%(Filename)_sb.obj</Outputs>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)%(Filename)_sb.obj</Outputs>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">$(IntDir)%(Filename)_sb.obj</Outputs>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">if not exist "$(IntDir)" md "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-wave-psslc.exe" -profile sce_ps_orbis "%(FullPath)" -o "$(IntDir)%(Filename).sb"
-pushd "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-objcopy.exe"  -I binary -O elf64-x86-64  -B i386 "%(Filename).sb" "%(Filename)_sb.obj"
-popd</Command>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">if not exist "$(IntDir)" md "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-wave-psslc.exe" -profile sce_ps_orbis "%(FullPath)" -o "$(IntDir)%(Filename).sb"
-pushd "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-objcopy.exe"  -I binary -O elf64-x86-64  -B i386 "%(Filename).sb" "%(Filename)_sb.obj"
-popd</Command>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|PSVita'">if not exist "$(IntDir)" md "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-wave-psslc.exe" -profile sce_ps_orbis "%(FullPath)" -o "$(IntDir)%(Filename).sb"
-pushd "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-objcopy.exe"  -I binary -O elf64-x86-64  -B i386 "%(Filename).sb" "%(Filename)_sb.obj"
-popd</Command>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">$(IntDir)%(Filename)_sb.obj;%(Outputs)</Outputs>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)%(Filename)_sb.obj;%(Outputs)</Outputs>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|PSVita'">$(IntDir)%(Filename)_sb.obj;%(Outputs)</Outputs>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">Compiling Fragment Shader: "%(FullPath)"</Message>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Compiling Fragment Shader: "%(FullPath)"</Message>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">Compiling Fragment Shader: "%(FullPath)"</Message>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">Compiling Fragment Shader: "%(FullPath)"</Message>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Compiling Fragment Shader: "%(FullPath)"</Message>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Release|PSVita'">Compiling Fragment Shader: "%(FullPath)"</Message>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
-    </CustomBuild>
-    <CustomBuild Include="resource\sampleutil_clear_vv.pssl">
-      <FileType>Document</FileType>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">if not exist "$(IntDir)" md "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-wave-psslc.exe" -profile sce_vs_vs_orbis "%(FullPath)" -o "$(IntDir)%(Filename).sb"
-pushd "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-objcopy.exe"  -I binary -O elf64-x86-64  -B i386 "%(Filename).sb" "%(Filename)_sb.obj"
-popd</Command>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">if not exist "$(IntDir)" md "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-wave-psslc.exe" -profile sce_vs_vs_orbis "%(FullPath)" -o "$(IntDir)%(Filename).sb"
-pushd "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-objcopy.exe"  -I binary -O elf64-x86-64  -B i386 "%(Filename).sb" "%(Filename)_sb.obj"
-popd</Command>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">if not exist "$(IntDir)" md "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-wave-psslc.exe" -profile sce_vs_vs_orbis "%(FullPath)" -o "$(IntDir)%(Filename).sb"
-pushd "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-objcopy.exe"  -I binary -O elf64-x86-64  -B i386 "%(Filename).sb" "%(Filename)_sb.obj"
-popd</Command>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">$(IntDir)%(Filename)_sb.obj</Outputs>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)%(Filename)_sb.obj</Outputs>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">$(IntDir)%(Filename)_sb.obj</Outputs>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">if not exist "$(IntDir)" md "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-wave-psslc.exe" -profile sce_vs_vs_orbis "%(FullPath)" -o "$(IntDir)%(Filename).sb"
-pushd "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-objcopy.exe"  -I binary -O elf64-x86-64  -B i386 "%(Filename).sb" "%(Filename)_sb.obj"
-popd</Command>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">if not exist "$(IntDir)" md "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-wave-psslc.exe" -profile sce_vs_vs_orbis "%(FullPath)" -o "$(IntDir)%(Filename).sb"
-pushd "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-objcopy.exe"  -I binary -O elf64-x86-64  -B i386 "%(Filename).sb" "%(Filename)_sb.obj"
-popd</Command>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|PSVita'">if not exist "$(IntDir)" md "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-wave-psslc.exe" -profile sce_vs_vs_orbis "%(FullPath)" -o "$(IntDir)%(Filename).sb"
-pushd "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-objcopy.exe"  -I binary -O elf64-x86-64  -B i386 "%(Filename).sb" "%(Filename)_sb.obj"
-popd</Command>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">$(IntDir)%(Filename)_sb.obj;%(Outputs)</Outputs>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)%(Filename)_sb.obj;%(Outputs)</Outputs>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|PSVita'">$(IntDir)%(Filename)_sb.obj;%(Outputs)</Outputs>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">Compiling Vertex Shader: "%(FullPath)"</Message>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Compiling Vertex Shader: "%(FullPath)"</Message>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Release|PSVita'">Compiling Vertex Shader: "%(FullPath)"</Message>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">Compiling Vertex Shader: "%(FullPath)"</Message>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Compiling Vertex Shader: "%(FullPath)"</Message>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">Compiling Vertex Shader: "%(FullPath)"</Message>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
-    </CustomBuild>
-  </ItemGroup>
-  <ItemGroup>
-    <CustomBuild Include="resource\sampleutil_point_sprite2d_f.pssl">
-      <FileType>Document</FileType>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">if not exist "$(IntDir)" md "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-wave-psslc.exe" -profile sce_ps_orbis "%(FullPath)" -o "$(IntDir)%(Filename).sb"
-pushd "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-objcopy.exe"  -I binary -O elf64-x86-64  -B i386 "%(Filename).sb" "%(Filename)_sb.obj"
-popd</Command>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">if not exist "$(IntDir)" md "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-wave-psslc.exe" -profile sce_ps_orbis "%(FullPath)" -o "$(IntDir)%(Filename).sb"
-pushd "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-objcopy.exe"  -I binary -O elf64-x86-64  -B i386 "%(Filename).sb" "%(Filename)_sb.obj"
-popd</Command>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">if not exist "$(IntDir)" md "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-wave-psslc.exe" -profile sce_ps_orbis "%(FullPath)" -o "$(IntDir)%(Filename).sb"
-pushd "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-objcopy.exe"  -I binary -O elf64-x86-64  -B i386 "%(Filename).sb" "%(Filename)_sb.obj"
-popd</Command>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">$(IntDir)%(Filename)_sb.obj</Outputs>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)%(Filename)_sb.obj</Outputs>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">$(IntDir)%(Filename)_sb.obj</Outputs>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">if not exist "$(IntDir)" md "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-wave-psslc.exe" -profile sce_ps_orbis "%(FullPath)" -o "$(IntDir)%(Filename).sb"
-pushd "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-objcopy.exe"  -I binary -O elf64-x86-64  -B i386 "%(Filename).sb" "%(Filename)_sb.obj"
-popd</Command>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">if not exist "$(IntDir)" md "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-wave-psslc.exe" -profile sce_ps_orbis "%(FullPath)" -o "$(IntDir)%(Filename).sb"
-pushd "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-objcopy.exe"  -I binary -O elf64-x86-64  -B i386 "%(Filename).sb" "%(Filename)_sb.obj"
-popd</Command>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|PSVita'">if not exist "$(IntDir)" md "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-wave-psslc.exe" -profile sce_ps_orbis "%(FullPath)" -o "$(IntDir)%(Filename).sb"
-pushd "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-objcopy.exe"  -I binary -O elf64-x86-64  -B i386 "%(Filename).sb" "%(Filename)_sb.obj"
-popd</Command>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">$(IntDir)%(Filename)_sb.obj;%(Outputs)</Outputs>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)%(Filename)_sb.obj;%(Outputs)</Outputs>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|PSVita'">$(IntDir)%(Filename)_sb.obj;%(Outputs)</Outputs>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">Compiling Fragment Shader: "%(FullPath)"</Message>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Compiling Fragment Shader: "%(FullPath)"</Message>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Release|PSVita'">Compiling Fragment Shader: "%(FullPath)"</Message>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">Compiling Fragment Shader: "%(FullPath)"</Message>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Compiling Fragment Shader: "%(FullPath)"</Message>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">Compiling Fragment Shader: "%(FullPath)"</Message>
-      <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">
-      </AdditionalInputs>
-      <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
-      </AdditionalInputs>
-      <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|PSVita'">
-      </AdditionalInputs>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
-    </CustomBuild>
-    <CustomBuild Include="resource\sampleutil_point_sprite2d_v.pssl">
-      <FileType>Document</FileType>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">if not exist "$(IntDir)" md "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-wave-psslc.exe" -profile sce_vs_vs_orbis "%(FullPath)" -o "$(IntDir)%(Filename).sb"
-pushd "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-objcopy.exe"  -I binary -O elf64-x86-64  -B i386 "%(Filename).sb" "%(Filename)_sb.obj"
-popd</Command>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">if not exist "$(IntDir)" md "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-wave-psslc.exe" -profile sce_vs_vs_orbis "%(FullPath)" -o "$(IntDir)%(Filename).sb"
-pushd "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-objcopy.exe"  -I binary -O elf64-x86-64  -B i386 "%(Filename).sb" "%(Filename)_sb.obj"
-popd</Command>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">if not exist "$(IntDir)" md "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-wave-psslc.exe" -profile sce_vs_vs_orbis "%(FullPath)" -o "$(IntDir)%(Filename).sb"
-pushd "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-objcopy.exe"  -I binary -O elf64-x86-64  -B i386 "%(Filename).sb" "%(Filename)_sb.obj"
-popd</Command>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">$(IntDir)%(Filename)_sb.obj</Outputs>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)%(Filename)_sb.obj</Outputs>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">$(IntDir)%(Filename)_sb.obj</Outputs>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">if not exist "$(IntDir)" md "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-wave-psslc.exe" -profile sce_vs_vs_orbis "%(FullPath)" -o "$(IntDir)%(Filename).sb"
-pushd "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-objcopy.exe"  -I binary -O elf64-x86-64  -B i386 "%(Filename).sb" "%(Filename)_sb.obj"
-popd</Command>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">if not exist "$(IntDir)" md "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-wave-psslc.exe" -profile sce_vs_vs_orbis "%(FullPath)" -o "$(IntDir)%(Filename).sb"
-pushd "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-objcopy.exe"  -I binary -O elf64-x86-64  -B i386 "%(Filename).sb" "%(Filename)_sb.obj"
-popd</Command>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|PSVita'">if not exist "$(IntDir)" md "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-wave-psslc.exe" -profile sce_vs_vs_orbis "%(FullPath)" -o "$(IntDir)%(Filename).sb"
-pushd "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-objcopy.exe"  -I binary -O elf64-x86-64  -B i386 "%(Filename).sb" "%(Filename)_sb.obj"
-popd</Command>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">$(IntDir)%(Filename)_sb.obj;%(Outputs)</Outputs>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)%(Filename)_sb.obj;%(Outputs)</Outputs>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|PSVita'">$(IntDir)%(Filename)_sb.obj;%(Outputs)</Outputs>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">Compiling Vertex Shader: "%(FullPath)"</Message>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Compiling Vertex Shader: "%(FullPath)"</Message>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Release|PSVita'">Compiling Vertex Shader: "%(FullPath)"</Message>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">Compiling Vertex Shader: "%(FullPath)"</Message>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Compiling Vertex Shader: "%(FullPath)"</Message>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">Compiling Vertex Shader: "%(FullPath)"</Message>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
-    </CustomBuild>
-    <CustomBuild Include="resource\sampleutil_sprite2d_f.pssl">
-      <FileType>Document</FileType>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">if not exist "$(IntDir)" md "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-wave-psslc.exe" -profile sce_ps_orbis "%(FullPath)" -o "$(IntDir)%(Filename).sb"
-pushd "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-objcopy.exe"  -I binary -O elf64-x86-64  -B i386 "%(Filename).sb" "%(Filename)_sb.obj"
-popd</Command>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">if not exist "$(IntDir)" md "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-wave-psslc.exe" -profile sce_ps_orbis "%(FullPath)" -o "$(IntDir)%(Filename).sb"
-pushd "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-objcopy.exe"  -I binary -O elf64-x86-64  -B i386 "%(Filename).sb" "%(Filename)_sb.obj"
-popd</Command>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">if not exist "$(IntDir)" md "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-wave-psslc.exe" -profile sce_ps_orbis "%(FullPath)" -o "$(IntDir)%(Filename).sb"
-pushd "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-objcopy.exe"  -I binary -O elf64-x86-64  -B i386 "%(Filename).sb" "%(Filename)_sb.obj"
-popd</Command>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">$(IntDir)%(Filename)_sb.obj</Outputs>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)%(Filename)_sb.obj</Outputs>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">$(IntDir)%(Filename)_sb.obj</Outputs>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">if not exist "$(IntDir)" md "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-wave-psslc.exe" -profile sce_ps_orbis "%(FullPath)" -o "$(IntDir)%(Filename).sb"
-pushd "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-objcopy.exe"  -I binary -O elf64-x86-64  -B i386 "%(Filename).sb" "%(Filename)_sb.obj"
-popd</Command>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">if not exist "$(IntDir)" md "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-wave-psslc.exe" -profile sce_ps_orbis "%(FullPath)" -o "$(IntDir)%(Filename).sb"
-pushd "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-objcopy.exe"  -I binary -O elf64-x86-64  -B i386 "%(Filename).sb" "%(Filename)_sb.obj"
-popd</Command>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|PSVita'">if not exist "$(IntDir)" md "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-wave-psslc.exe" -profile sce_ps_orbis "%(FullPath)" -o "$(IntDir)%(Filename).sb"
-pushd "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-objcopy.exe"  -I binary -O elf64-x86-64  -B i386 "%(Filename).sb" "%(Filename)_sb.obj"
-popd</Command>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">$(IntDir)%(Filename)_sb.obj;%(Outputs)</Outputs>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)%(Filename)_sb.obj;%(Outputs)</Outputs>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|PSVita'">$(IntDir)%(Filename)_sb.obj;%(Outputs)</Outputs>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">Compiling Fragment Shader: "%(FullPath)"</Message>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Compiling Fragment Shader: "%(FullPath)"</Message>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Release|PSVita'">Compiling Fragment Shader: "%(FullPath)"</Message>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">Compiling Fragment Shader: "%(FullPath)"</Message>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Compiling Fragment Shader: "%(FullPath)"</Message>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">Compiling Fragment Shader: "%(FullPath)"</Message>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
-    </CustomBuild>
-    <CustomBuild Include="resource\sampleutil_sprite2d_v.pssl">
-      <FileType>Document</FileType>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">if not exist "$(IntDir)" md "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-wave-psslc.exe" -profile sce_vs_vs_orbis "%(FullPath)" -o "$(IntDir)%(Filename).sb"
-pushd "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-objcopy.exe"  -I binary -O elf64-x86-64  -B i386 "%(Filename).sb" "%(Filename)_sb.obj"
-popd</Command>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">if not exist "$(IntDir)" md "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-wave-psslc.exe" -profile sce_vs_vs_orbis "%(FullPath)" -o "$(IntDir)%(Filename).sb"
-pushd "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-objcopy.exe"  -I binary -O elf64-x86-64  -B i386 "%(Filename).sb" "%(Filename)_sb.obj"
-popd</Command>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">if not exist "$(IntDir)" md "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-wave-psslc.exe" -profile sce_vs_vs_orbis "%(FullPath)" -o "$(IntDir)%(Filename).sb"
-pushd "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-objcopy.exe"  -I binary -O elf64-x86-64  -B i386 "%(Filename).sb" "%(Filename)_sb.obj"
-popd</Command>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">$(IntDir)%(Filename)_sb.obj</Outputs>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)%(Filename)_sb.obj</Outputs>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">$(IntDir)%(Filename)_sb.obj</Outputs>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">if not exist "$(IntDir)" md "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-wave-psslc.exe" -profile sce_vs_vs_orbis "%(FullPath)" -o "$(IntDir)%(Filename).sb"
-pushd "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-objcopy.exe"  -I binary -O elf64-x86-64  -B i386 "%(Filename).sb" "%(Filename)_sb.obj"
-popd</Command>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">if not exist "$(IntDir)" md "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-wave-psslc.exe" -profile sce_vs_vs_orbis "%(FullPath)" -o "$(IntDir)%(Filename).sb"
-pushd "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-objcopy.exe"  -I binary -O elf64-x86-64  -B i386 "%(Filename).sb" "%(Filename)_sb.obj"
-popd</Command>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|PSVita'">if not exist "$(IntDir)" md "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-wave-psslc.exe" -profile sce_vs_vs_orbis "%(FullPath)" -o "$(IntDir)%(Filename).sb"
-pushd "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-objcopy.exe"  -I binary -O elf64-x86-64  -B i386 "%(Filename).sb" "%(Filename)_sb.obj"
-popd</Command>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">$(IntDir)%(Filename)_sb.obj;%(Outputs)</Outputs>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)%(Filename)_sb.obj;%(Outputs)</Outputs>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|PSVita'">$(IntDir)%(Filename)_sb.obj;%(Outputs)</Outputs>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">Compiling Vertex Shader: "%(FullPath)"</Message>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Compiling Vertex Shader: "%(FullPath)"</Message>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Release|PSVita'">Compiling Vertex Shader: "%(FullPath)"</Message>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">Compiling Vertex Shader: "%(FullPath)"</Message>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Compiling Vertex Shader: "%(FullPath)"</Message>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">Compiling Vertex Shader: "%(FullPath)"</Message>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
-    </CustomBuild>
-    <CustomBuild Include="resource\sampleutil_collada_skinning_phong_f.pssl">
-      <FileType>Document</FileType>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">if not exist "$(IntDir)" md "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-wave-psslc.exe" -profile sce_ps_orbis "%(FullPath)" -o "$(IntDir)%(Filename).sb"
-pushd "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-objcopy.exe"  -I binary -O elf64-x86-64  -B i386 "%(Filename).sb" "%(Filename)_sb.obj"
-popd</Command>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">if not exist "$(IntDir)" md "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-wave-psslc.exe" -profile sce_ps_orbis "%(FullPath)" -o "$(IntDir)%(Filename).sb"
-pushd "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-objcopy.exe"  -I binary -O elf64-x86-64  -B i386 "%(Filename).sb" "%(Filename)_sb.obj"
-popd</Command>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">if not exist "$(IntDir)" md "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-wave-psslc.exe" -profile sce_ps_orbis "%(FullPath)" -o "$(IntDir)%(Filename).sb"
-pushd "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-objcopy.exe"  -I binary -O elf64-x86-64  -B i386 "%(Filename).sb" "%(Filename)_sb.obj"
-popd</Command>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">$(IntDir)%(Filename)_sb.obj;%(Outputs)</Outputs>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)%(Filename)_sb.obj;%(Outputs)</Outputs>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">$(IntDir)%(Filename)_sb.obj;%(Outputs)</Outputs>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">if not exist "$(IntDir)" md "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-wave-psslc.exe" -profile sce_ps_orbis "%(FullPath)" -o "$(IntDir)%(Filename).sb"
-pushd "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-objcopy.exe"  -I binary -O elf64-x86-64  -B i386 "%(Filename).sb" "%(Filename)_sb.obj"
-popd</Command>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">if not exist "$(IntDir)" md "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-wave-psslc.exe" -profile sce_ps_orbis "%(FullPath)" -o "$(IntDir)%(Filename).sb"
-pushd "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-objcopy.exe"  -I binary -O elf64-x86-64  -B i386 "%(Filename).sb" "%(Filename)_sb.obj"
-popd</Command>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|PSVita'">if not exist "$(IntDir)" md "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-wave-psslc.exe" -profile sce_ps_orbis "%(FullPath)" -o "$(IntDir)%(Filename).sb"
-pushd "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-objcopy.exe"  -I binary -O elf64-x86-64  -B i386 "%(Filename).sb" "%(Filename)_sb.obj"
-popd</Command>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">$(IntDir)%(Filename)_sb.obj;%(Outputs)</Outputs>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)%(Filename)_sb.obj;%(Outputs)</Outputs>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|PSVita'">$(IntDir)%(Filename)_sb.obj;%(Outputs)</Outputs>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">Compiling Fragment Shader: "%(FullPath)"</Message>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Compiling Fragment Shader: "%(FullPath)"</Message>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Release|PSVita'">Compiling Fragment Shader: "%(FullPath)"</Message>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">Compiling Fragment Shader: "%(FullPath)"</Message>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Compiling Fragment Shader: "%(FullPath)"</Message>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">Compiling Fragment Shader: "%(FullPath)"</Message>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
-    </CustomBuild>
-    <CustomBuild Include="resource\sampleutil_collada_skinning_phong_v.pssl">
-      <FileType>Document</FileType>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">if not exist "$(IntDir)" md "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-wave-psslc.exe" -profile sce_vs_vs_orbis "%(FullPath)" -o "$(IntDir)%(Filename).sb"
-pushd "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-objcopy.exe"  -I binary -O elf64-x86-64  -B i386 "%(Filename).sb" "%(Filename)_sb.obj"
-popd</Command>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">if not exist "$(IntDir)" md "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-wave-psslc.exe" -profile sce_vs_vs_orbis "%(FullPath)" -o "$(IntDir)%(Filename).sb"
-pushd "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-objcopy.exe"  -I binary -O elf64-x86-64  -B i386 "%(Filename).sb" "%(Filename)_sb.obj"
-popd</Command>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">if not exist "$(IntDir)" md "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-wave-psslc.exe" -profile sce_vs_vs_orbis "%(FullPath)" -o "$(IntDir)%(Filename).sb"
-pushd "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-objcopy.exe"  -I binary -O elf64-x86-64  -B i386 "%(Filename).sb" "%(Filename)_sb.obj"
-popd</Command>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">$(IntDir)%(Filename)_sb.obj;%(Outputs)</Outputs>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)%(Filename)_sb.obj;%(Outputs)</Outputs>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">$(IntDir)%(Filename)_sb.obj;%(Outputs)</Outputs>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">if not exist "$(IntDir)" md "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-wave-psslc.exe" -profile sce_vs_vs_orbis  "%(FullPath)" -o "$(IntDir)%(Filename).sb"
-pushd "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-objcopy.exe"  -I binary -O elf64-x86-64  -B i386 "%(Filename).sb" "%(Filename)_sb.obj"
-popd</Command>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">if not exist "$(IntDir)" md "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-wave-psslc.exe" -profile sce_vs_vs_orbis "%(FullPath)" -o "$(IntDir)%(Filename).sb"
-pushd "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-objcopy.exe"  -I binary -O elf64-x86-64  -B i386 "%(Filename).sb" "%(Filename)_sb.obj"
-popd</Command>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|PSVita'">if not exist "$(IntDir)" md "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-wave-psslc.exe" -profile sce_vs_vs_orbis "%(FullPath)" -o "$(IntDir)%(Filename).sb"
-pushd "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-objcopy.exe"  -I binary -O elf64-x86-64  -B i386 "%(Filename).sb" "%(Filename)_sb.obj"
-popd</Command>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">$(IntDir)%(Filename)_sb.obj;%(Outputs)</Outputs>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)%(Filename)_sb.obj;%(Outputs)</Outputs>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|PSVita'">$(IntDir)%(Filename)_sb.obj;%(Outputs)</Outputs>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">Compiling Vertex Shader: "%(FullPath)"</Message>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Compiling Vertex Shader: "%(FullPath)"</Message>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Release|PSVita'">Compiling Vertex Shader: "%(FullPath)"</Message>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">Compiling Vertex Shader: "%(FullPath)"</Message>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Compiling Vertex Shader: "%(FullPath)"</Message>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">Compiling Vertex Shader: "%(FullPath)"</Message>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
-    </CustomBuild>
-    <CustomBuild Include="resource\sampleutil_ascii.tga">
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">if not exist "$(IntDir)" md "$(IntDir)"
-copy "%(FullPath)" "$(IntDir)%(Filename).tga"
-pushd "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-objcopy.exe"  -I binary -O elf64-x86-64  -B i386 "%(Filename).tga" "%(Filename).obj"
-popd
-</Command>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">if not exist "$(IntDir)" md "$(IntDir)"
-copy "%(FullPath)" "$(IntDir)%(Filename).tga"
-pushd "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-objcopy.exe"  -I binary -O elf64-x86-64  -B i386 "%(Filename).tga" "%(Filename).obj"
-popd
-</Command>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">"$(SCE_PSP2_SDK_DIR)"\host_tools\build\bin\psp2bin.exe "%(FullPath)" -b2e PSP2,_binary_%(Filename)_tga_start,_binary_%(Filename)_tga_size -o "$(IntDir)%(Filename)_tga.obj"
-</Command>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">$(IntDir)%(Filename).obj;%(Outputs)</Outputs>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)%(Filename).obj;%(Outputs)</Outputs>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">$(IntDir)%(Filename)_tga.obj;%(Outputs)</Outputs>
-      <FileType>Document</FileType>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">if not exist "$(IntDir)" md "$(IntDir)"
-copy "%(FullPath)" "$(IntDir)%(Filename).tga"
-pushd "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-objcopy.exe"  -I binary -O elf64-x86-64  -B i386 "%(Filename).tga" "%(Filename).obj"
-popd
-</Command>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">if not exist "$(IntDir)" md "$(IntDir)"
-copy "%(FullPath)" "$(IntDir)%(Filename).tga"
-pushd "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-objcopy.exe"  -I binary -O elf64-x86-64  -B i386 "%(Filename).tga" "%(Filename).obj"
-popd
-</Command>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|PSVita'">"$(SCE_PSP2_SDK_DIR)"\host_tools\build\bin\psp2bin.exe "%(FullPath)" -b2e PSP2,_binary_%(Filename)_tga_start,_binary_%(Filename)_tga_size -o "$(IntDir)%(Filename)_tga.obj"
-</Command>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">$(IntDir)%(Filename).obj;%(Outputs)</Outputs>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)%(Filename).obj;%(Outputs)</Outputs>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|PSVita'">$(IntDir)%(Filename)_tga.obj;%(Outputs)</Outputs>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
-    </CustomBuild>
-  </ItemGroup>
-  <ItemGroup>
-    <CustomBuild Include="resource\sampleutil_clear_f.cg">
-      <FileType>Document</FileType>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">"$(SCE_PSP2_SDK_DIR)"\host_tools\bin\psp2cgc.exe --profile sce_fp_psp2 "%(FullPath)" -o "$(IntDir)%(Filename).gxp"
-"$(SCE_PSP2_SDK_DIR)"\host_tools\build\bin\psp2bin.exe "$(IntDir)%(Filename).gxp" -b2e PSP2,_binary_%(Filename)_gxp_start,_binary_%(Filename)_gxp_size,4 -o "$(IntDir)%(Filename)_gxp.obj"
-</Command>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|PSVita'">"$(SCE_PSP2_SDK_DIR)"\host_tools\bin\psp2cgc.exe --profile sce_fp_psp2 "%(FullPath)" -o "$(IntDir)%(Filename).gxp"
-"$(SCE_PSP2_SDK_DIR)"\host_tools\build\bin\psp2bin.exe "$(IntDir)%(Filename).gxp" -b2e PSP2,_binary_%(Filename)_gxp_start,_binary_%(Filename)_gxp_size,4 -o "$(IntDir)%(Filename)_gxp.obj"
-</Command>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">Compiling Fragment Shader: "%(FullPath)"</Message>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Release|PSVita'">Compiling Fragment Shader: "%(FullPath)"</Message>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">$(IntDir)%(Filename)_gxp.obj;%(Outputs)</Outputs>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">true</ExcludedFromBuild>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|PSVita'">$(IntDir)%(Filename)_gxp.obj;%(Outputs)</Outputs>
-    </CustomBuild>
-    <CustomBuild Include="resource\sampleutil_clear_v.cg">
-      <FileType>Document</FileType>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">"$(SCE_PSP2_SDK_DIR)"\host_tools\bin\psp2cgc.exe --profile sce_vp_psp2 "%(FullPath)" -o "$(IntDir)%(Filename).gxp"
-"$(SCE_PSP2_SDK_DIR)"\host_tools\build\bin\psp2bin.exe "$(IntDir)%(Filename).gxp" -b2e PSP2,_binary_%(Filename)_gxp_start,_binary_%(Filename)_gxp_size,4 -o "$(IntDir)%(Filename)_gxp.obj"
-</Command>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|PSVita'">"$(SCE_PSP2_SDK_DIR)"\host_tools\bin\psp2cgc.exe --profile sce_vp_psp2 "%(FullPath)" -o "$(IntDir)%(Filename).gxp"
-"$(SCE_PSP2_SDK_DIR)"\host_tools\build\bin\psp2bin.exe "$(IntDir)%(Filename).gxp" -b2e PSP2,_binary_%(Filename)_gxp_start,_binary_%(Filename)_gxp_size,4 -o "$(IntDir)%(Filename)_gxp.obj"
-</Command>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">Compiling Vertex Shader: "%(FullPath)"</Message>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Release|PSVita'">Compiling Vertex Shader: "%(FullPath)"</Message>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">$(IntDir)%(Filename)_gxp.obj;%(Outputs)</Outputs>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">true</ExcludedFromBuild>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|PSVita'">$(IntDir)%(Filename)_gxp.obj;%(Outputs)</Outputs>
-    </CustomBuild>
-    <CustomBuild Include="resource\sampleutil_collada_skinning_phong_f.cg">
-      <FileType>Document</FileType>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">"$(SCE_PSP2_SDK_DIR)"\host_tools\bin\psp2cgc.exe --profile sce_fp_psp2 "%(FullPath)" -o "$(IntDir)%(Filename).gxp"
-"$(SCE_PSP2_SDK_DIR)"\host_tools\build\bin\psp2bin.exe "$(IntDir)%(Filename).gxp" -b2e PSP2,_binary_%(Filename)_gxp_start,_binary_%(Filename)_gxp_size,4 -o "$(IntDir)%(Filename)_gxp.obj"
-</Command>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|PSVita'">"$(SCE_PSP2_SDK_DIR)"\host_tools\bin\psp2cgc.exe --profile sce_fp_psp2 "%(FullPath)" -o "$(IntDir)%(Filename).gxp"
-"$(SCE_PSP2_SDK_DIR)"\host_tools\build\bin\psp2bin.exe "$(IntDir)%(Filename).gxp" -b2e PSP2,_binary_%(Filename)_gxp_start,_binary_%(Filename)_gxp_size,4 -o "$(IntDir)%(Filename)_gxp.obj"
-</Command>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">Compiling Fragment Shader: "%(FullPath)"</Message>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Release|PSVita'">Compiling Fragment Shader: "%(FullPath)"</Message>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">$(IntDir)%(Filename)_gxp.obj;%(Outputs)</Outputs>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">true</ExcludedFromBuild>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|PSVita'">$(IntDir)%(Filename)_gxp.obj;%(Outputs)</Outputs>
-    </CustomBuild>
-    <CustomBuild Include="resource\sampleutil_collada_skinning_phong_v.cg">
-      <FileType>Document</FileType>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">"$(SCE_PSP2_SDK_DIR)"\host_tools\bin\psp2cgc.exe --profile sce_vp_psp2 "%(FullPath)" -o "$(IntDir)%(Filename).gxp"
-"$(SCE_PSP2_SDK_DIR)"\host_tools\build\bin\psp2bin.exe "$(IntDir)%(Filename).gxp" -b2e PSP2,_binary_%(Filename)_gxp_start,_binary_%(Filename)_gxp_size,4 -o "$(IntDir)%(Filename)_gxp.obj"
-</Command>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|PSVita'">"$(SCE_PSP2_SDK_DIR)"\host_tools\bin\psp2cgc.exe --profile sce_vp_psp2 "%(FullPath)" -o "$(IntDir)%(Filename).gxp"
-"$(SCE_PSP2_SDK_DIR)"\host_tools\build\bin\psp2bin.exe "$(IntDir)%(Filename).gxp" -b2e PSP2,_binary_%(Filename)_gxp_start,_binary_%(Filename)_gxp_size,4 -o "$(IntDir)%(Filename)_gxp.obj"
-</Command>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">Compiling Vertex Shader: "%(FullPath)"</Message>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Release|PSVita'">Compiling Vertex Shader: "%(FullPath)"</Message>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">$(IntDir)%(Filename)_gxp.obj;%(Outputs)</Outputs>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">true</ExcludedFromBuild>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|PSVita'">$(IntDir)%(Filename)_gxp.obj;%(Outputs)</Outputs>
-    </CustomBuild>
-    <CustomBuild Include="resource\sampleutil_fill2d_f.cg">
-      <FileType>Document</FileType>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">"$(SCE_PSP2_SDK_DIR)"\host_tools\bin\psp2cgc.exe --profile sce_fp_psp2 "%(FullPath)" -o "$(IntDir)%(Filename).gxp"
-"$(SCE_PSP2_SDK_DIR)"\host_tools\build\bin\psp2bin.exe "$(IntDir)%(Filename).gxp" -b2e PSP2,_binary_%(Filename)_gxp_start,_binary_%(Filename)_gxp_size,4 -o "$(IntDir)%(Filename)_gxp.obj"
-</Command>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|PSVita'">"$(SCE_PSP2_SDK_DIR)"\host_tools\bin\psp2cgc.exe --profile sce_fp_psp2 "%(FullPath)" -o "$(IntDir)%(Filename).gxp"
-"$(SCE_PSP2_SDK_DIR)"\host_tools\build\bin\psp2bin.exe "$(IntDir)%(Filename).gxp" -b2e PSP2,_binary_%(Filename)_gxp_start,_binary_%(Filename)_gxp_size,4 -o "$(IntDir)%(Filename)_gxp.obj"
-</Command>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">Compiling Fragment Shader: "%(FullPath)"</Message>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Release|PSVita'">Compiling Fragment Shader: "%(FullPath)"</Message>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">$(IntDir)%(Filename)_gxp.obj;%(Outputs)</Outputs>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">true</ExcludedFromBuild>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|PSVita'">$(IntDir)%(Filename)_gxp.obj;%(Outputs)</Outputs>
-    </CustomBuild>
-    <CustomBuild Include="resource\sampleutil_fill2d_v.cg">
-      <FileType>Document</FileType>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">"$(SCE_PSP2_SDK_DIR)"\host_tools\bin\psp2cgc.exe --profile sce_vp_psp2 "%(FullPath)" -o "$(IntDir)%(Filename).gxp"
-"$(SCE_PSP2_SDK_DIR)"\host_tools\build\bin\psp2bin.exe "$(IntDir)%(Filename).gxp" -b2e PSP2,_binary_%(Filename)_gxp_start,_binary_%(Filename)_gxp_size,4 -o "$(IntDir)%(Filename)_gxp.obj"
-</Command>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|PSVita'">"$(SCE_PSP2_SDK_DIR)"\host_tools\bin\psp2cgc.exe --profile sce_vp_psp2 "%(FullPath)" -o "$(IntDir)%(Filename).gxp"
-"$(SCE_PSP2_SDK_DIR)"\host_tools\build\bin\psp2bin.exe "$(IntDir)%(Filename).gxp" -b2e PSP2,_binary_%(Filename)_gxp_start,_binary_%(Filename)_gxp_size,4 -o "$(IntDir)%(Filename)_gxp.obj"
-</Command>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">Compiling Vertex Shader: "%(FullPath)"</Message>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Release|PSVita'">Compiling Vertex Shader: "%(FullPath)"</Message>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">$(IntDir)%(Filename)_gxp.obj;%(Outputs)</Outputs>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">true</ExcludedFromBuild>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|PSVita'">$(IntDir)%(Filename)_gxp.obj;%(Outputs)</Outputs>
-    </CustomBuild>
-    <CustomBuild Include="resource\sampleutil_point_sprite2d_f.cg">
-      <FileType>Document</FileType>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">"$(SCE_PSP2_SDK_DIR)"\host_tools\bin\psp2cgc.exe --profile sce_fp_psp2 "%(FullPath)" -o "$(IntDir)%(Filename).gxp"
-"$(SCE_PSP2_SDK_DIR)"\host_tools\build\bin\psp2bin.exe "$(IntDir)%(Filename).gxp" -b2e PSP2,_binary_%(Filename)_gxp_start,_binary_%(Filename)_gxp_size,4 -o "$(IntDir)%(Filename)_gxp.obj"
-</Command>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|PSVita'">"$(SCE_PSP2_SDK_DIR)"\host_tools\bin\psp2cgc.exe --profile sce_fp_psp2 "%(FullPath)" -o "$(IntDir)%(Filename).gxp"
-"$(SCE_PSP2_SDK_DIR)"\host_tools\build\bin\psp2bin.exe "$(IntDir)%(Filename).gxp" -b2e PSP2,_binary_%(Filename)_gxp_start,_binary_%(Filename)_gxp_size,4 -o "$(IntDir)%(Filename)_gxp.obj"
-</Command>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">Compiling Fragment Shader: "%(FullPath)"</Message>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Release|PSVita'">Compiling Fragment Shader: "%(FullPath)"</Message>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">$(IntDir)%(Filename)_gxp.obj;%(Outputs)</Outputs>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">true</ExcludedFromBuild>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|PSVita'">$(IntDir)%(Filename)_gxp.obj;%(Outputs)</Outputs>
-    </CustomBuild>
-    <CustomBuild Include="resource\sampleutil_point_sprite2d_v.cg">
-      <FileType>Document</FileType>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">"$(SCE_PSP2_SDK_DIR)"\host_tools\bin\psp2cgc.exe --profile sce_vp_psp2 "%(FullPath)" -o "$(IntDir)%(Filename).gxp"
-"$(SCE_PSP2_SDK_DIR)"\host_tools\build\bin\psp2bin.exe "$(IntDir)%(Filename).gxp" -b2e PSP2,_binary_%(Filename)_gxp_start,_binary_%(Filename)_gxp_size,4 -o "$(IntDir)%(Filename)_gxp.obj"
-</Command>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|PSVita'">"$(SCE_PSP2_SDK_DIR)"\host_tools\bin\psp2cgc.exe --profile sce_vp_psp2 "%(FullPath)" -o "$(IntDir)%(Filename).gxp"
-"$(SCE_PSP2_SDK_DIR)"\host_tools\build\bin\psp2bin.exe "$(IntDir)%(Filename).gxp" -b2e PSP2,_binary_%(Filename)_gxp_start,_binary_%(Filename)_gxp_size,4 -o "$(IntDir)%(Filename)_gxp.obj"
-</Command>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">Compiling Vertex Shader: "%(FullPath)"</Message>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Release|PSVita'">Compiling Vertex Shader: "%(FullPath)"</Message>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">$(IntDir)%(Filename)_gxp.obj;%(Outputs)</Outputs>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">true</ExcludedFromBuild>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|PSVita'">$(IntDir)%(Filename)_gxp.obj;%(Outputs)</Outputs>
-    </CustomBuild>
-    <CustomBuild Include="resource\sampleutil_sprite2d_f.cg">
-      <FileType>Document</FileType>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">"$(SCE_PSP2_SDK_DIR)"\host_tools\bin\psp2cgc.exe --profile sce_fp_psp2 "%(FullPath)" -o "$(IntDir)%(Filename).gxp"
-"$(SCE_PSP2_SDK_DIR)"\host_tools\build\bin\psp2bin.exe "$(IntDir)%(Filename).gxp" -b2e PSP2,_binary_%(Filename)_gxp_start,_binary_%(Filename)_gxp_size,4 -o "$(IntDir)%(Filename)_gxp.obj"
-</Command>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|PSVita'">"$(SCE_PSP2_SDK_DIR)"\host_tools\bin\psp2cgc.exe --profile sce_fp_psp2 "%(FullPath)" -o "$(IntDir)%(Filename).gxp"
-"$(SCE_PSP2_SDK_DIR)"\host_tools\build\bin\psp2bin.exe "$(IntDir)%(Filename).gxp" -b2e PSP2,_binary_%(Filename)_gxp_start,_binary_%(Filename)_gxp_size,4 -o "$(IntDir)%(Filename)_gxp.obj"
-</Command>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">Compiling Fragment Shader: "%(FullPath)"</Message>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Release|PSVita'">Compiling Fragment Shader: "%(FullPath)"</Message>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">$(IntDir)%(Filename)_gxp.obj;%(Outputs)</Outputs>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">true</ExcludedFromBuild>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|PSVita'">$(IntDir)%(Filename)_gxp.obj;%(Outputs)</Outputs>
-    </CustomBuild>
-    <CustomBuild Include="resource\sampleutil_sprite2d_v.cg">
-      <FileType>Document</FileType>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">"$(SCE_PSP2_SDK_DIR)"\host_tools\bin\psp2cgc.exe --profile sce_vp_psp2 "%(FullPath)" -o "$(IntDir)%(Filename).gxp"
-"$(SCE_PSP2_SDK_DIR)"\host_tools\build\bin\psp2bin.exe "$(IntDir)%(Filename).gxp" -b2e PSP2,_binary_%(Filename)_gxp_start,_binary_%(Filename)_gxp_size,4 -o "$(IntDir)%(Filename)_gxp.obj"
-</Command>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">Compiling Vertex Shader: "%(FullPath)"</Message>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|PSVita'">"$(SCE_PSP2_SDK_DIR)"\host_tools\bin\psp2cgc.exe --profile sce_vp_psp2 "%(FullPath)" -o "$(IntDir)%(Filename).gxp"
-"$(SCE_PSP2_SDK_DIR)"\host_tools\build\bin\psp2bin.exe "$(IntDir)%(Filename).gxp" -b2e PSP2,_binary_%(Filename)_gxp_start,_binary_%(Filename)_gxp_size,4 -o "$(IntDir)%(Filename)_gxp.obj"
-</Command>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Release|PSVita'">Compiling Vertex Shader: "%(FullPath)"</Message>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">$(IntDir)%(Filename)_gxp.obj;%(Outputs)</Outputs>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">true</ExcludedFromBuild>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|PSVita'">$(IntDir)%(Filename)_gxp.obj;%(Outputs)</Outputs>
-    </CustomBuild>
-    <CustomBuild Include="resource\sampleutil_sprite2d_2_f.cg">
-      <FileType>Document</FileType>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">"$(SCE_PSP2_SDK_DIR)"\host_tools\bin\psp2cgc.exe --profile sce_fp_psp2 "%(FullPath)" -o "$(IntDir)%(Filename).gxp"
-"$(SCE_PSP2_SDK_DIR)"\host_tools\build\bin\psp2bin.exe "$(IntDir)%(Filename).gxp" -b2e PSP2,_binary_%(Filename)_gxp_start,_binary_%(Filename)_gxp_size,4 -o "$(IntDir)%(Filename)_gxp.obj"
-</Command>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|PSVita'">"$(SCE_PSP2_SDK_DIR)"\host_tools\bin\psp2cgc.exe --profile sce_fp_psp2 "%(FullPath)" -o "$(IntDir)%(Filename).gxp"
-"$(SCE_PSP2_SDK_DIR)"\host_tools\build\bin\psp2bin.exe "$(IntDir)%(Filename).gxp" -b2e PSP2,_binary_%(Filename)_gxp_start,_binary_%(Filename)_gxp_size,4 -o "$(IntDir)%(Filename)_gxp.obj"
-</Command>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">Compiling Fragment Shader: "%(FullPath)"</Message>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Release|PSVita'">Compiling Fragment Shader: "%(FullPath)"</Message>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">$(IntDir)%(Filename)_gxp.obj;%(Outputs)</Outputs>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|PSVita'">$(IntDir)%(Filename)_gxp.obj;%(Outputs)</Outputs>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">true</ExcludedFromBuild>
-    </CustomBuild>
-    <CustomBuild Include="resource\sampleutil_sprite2d_2_v.cg">
-      <FileType>Document</FileType>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">"$(SCE_PSP2_SDK_DIR)"\host_tools\bin\psp2cgc.exe --profile sce_vp_psp2 "%(FullPath)" -o "$(IntDir)%(Filename).gxp"
-"$(SCE_PSP2_SDK_DIR)"\host_tools\build\bin\psp2bin.exe "$(IntDir)%(Filename).gxp" -b2e PSP2,_binary_%(Filename)_gxp_start,_binary_%(Filename)_gxp_size,4 -o "$(IntDir)%(Filename)_gxp.obj"
-</Command>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|PSVita'">"$(SCE_PSP2_SDK_DIR)"\host_tools\bin\psp2cgc.exe --profile sce_vp_psp2 "%(FullPath)" -o "$(IntDir)%(Filename).gxp"
-"$(SCE_PSP2_SDK_DIR)"\host_tools\build\bin\psp2bin.exe "$(IntDir)%(Filename).gxp" -b2e PSP2,_binary_%(Filename)_gxp_start,_binary_%(Filename)_gxp_size,4 -o "$(IntDir)%(Filename)_gxp.obj"
-</Command>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">Compiling Vertex Shader: "%(FullPath)"</Message>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Release|PSVita'">Compiling Vertex Shader: "%(FullPath)"</Message>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">$(IntDir)%(Filename)_gxp.obj;%(Outputs)</Outputs>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|PSVita'">$(IntDir)%(Filename)_gxp.obj;%(Outputs)</Outputs>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">true</ExcludedFromBuild>
-    </CustomBuild>
-    <CustomBuild Include="resource\sampleutil_sprite2d_2_f.pssl">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
-      <FileType>Document</FileType>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">if not exist "$(IntDir)" md "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-wave-psslc.exe" -profile sce_ps_orbis "%(FullPath)" -o "$(IntDir)%(Filename).sb"
-pushd "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-objcopy.exe"  -I binary -O elf64-x86-64  -B i386 "%(Filename).sb" "%(Filename)_sb.obj"
-popd</Command>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">if not exist "$(IntDir)" md "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-wave-psslc.exe" -profile sce_ps_orbis "%(FullPath)" -o "$(IntDir)%(Filename).sb"
-pushd "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-objcopy.exe"  -I binary -O elf64-x86-64  -B i386 "%(Filename).sb" "%(Filename)_sb.obj"
-popd</Command>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">Compiling Fragment Shader: "%(FullPath)"</Message>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">Compiling Fragment Shader: "%(FullPath)"</Message>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">$(IntDir)%(Filename)_sb.obj;%(Outputs)</Outputs>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">$(IntDir)%(Filename)_sb.obj;%(Outputs)</Outputs>
-    </CustomBuild>
-    <CustomBuild Include="resource\sampleutil_sprite2d_2_v.pssl">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
-      <FileType>Document</FileType>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">if not exist "$(IntDir)" md "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-wave-psslc.exe" -profile sce_vs_vs_orbis "%(FullPath)" -o "$(IntDir)%(Filename).sb"
-pushd "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-objcopy.exe"  -I binary -O elf64-x86-64  -B i386 "%(Filename).sb" "%(Filename)_sb.obj"
-popd</Command>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">if not exist "$(IntDir)" md "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-wave-psslc.exe" -profile sce_vs_vs_orbis "%(FullPath)" -o "$(IntDir)%(Filename).sb"
-pushd "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-objcopy.exe"  -I binary -O elf64-x86-64  -B i386 "%(Filename).sb" "%(Filename)_sb.obj"
-popd</Command>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">Compiling Vertex Shader: "%(FullPath)"</Message>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">Compiling Vertex Shader: "%(FullPath)"</Message>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">$(IntDir)%(Filename)_sb.obj;%(Outputs)</Outputs>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">$(IntDir)%(Filename)_sb.obj;%(Outputs)</Outputs>
-    </CustomBuild>
-    <CustomBuild Include="resource\sampleutil_sprite2d_yuy2_f.cg">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">true</ExcludedFromBuild>
-      <FileType>Document</FileType>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">"$(SCE_PSP2_SDK_DIR)"\host_tools\bin\psp2cgc.exe --profile sce_fp_psp2 "%(FullPath)" -o "$(IntDir)%(Filename).gxp"
-"$(SCE_PSP2_SDK_DIR)"\host_tools\build\bin\psp2bin.exe "$(IntDir)%(Filename).gxp" -b2e PSP2,_binary_%(Filename)_gxp_start,_binary_%(Filename)_gxp_size,4 -o "$(IntDir)%(Filename)_gxp.obj"
-</Command>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">Compiling Fragment Shader: "%(FullPath)"</Message>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Release|PSVita'">Compiling Fragment Shader: "%(FullPath)"</Message>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">$(IntDir)%(Filename)_gxp.obj;%(Outputs)</Outputs>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|PSVita'">$(IntDir)%(Filename)_gxp.obj;%(Outputs)</Outputs>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|PSVita'">"$(SCE_PSP2_SDK_DIR)"\host_tools\bin\psp2cgc.exe --profile sce_fp_psp2 "%(FullPath)" -o "$(IntDir)%(Filename).gxp"
-"$(SCE_PSP2_SDK_DIR)"\host_tools\build\bin\psp2bin.exe "$(IntDir)%(Filename).gxp" -b2e PSP2,_binary_%(Filename)_gxp_start,_binary_%(Filename)_gxp_size,4 -o "$(IntDir)%(Filename)_gxp.obj"
-</Command>
-    </CustomBuild>
-    <CustomBuild Include="resource\sampleutil_sprite2d_yuy2_f.pssl">
-      <FileType>Document</FileType>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">if not exist "$(IntDir)" md "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-wave-psslc.exe" -profile sce_ps_orbis "%(FullPath)" -o "$(IntDir)%(Filename).sb"
-pushd "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-objcopy.exe"  -I binary -O elf64-x86-64  -B i386 "%(Filename).sb" "%(Filename)_sb.obj"
-popd</Command>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">if not exist "$(IntDir)" md "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-wave-psslc.exe" -profile sce_ps_orbis "%(FullPath)" -o "$(IntDir)%(Filename).sb"
-pushd "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-objcopy.exe"  -I binary -O elf64-x86-64  -B i386 "%(Filename).sb" "%(Filename)_sb.obj"
-popd</Command>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">Compiling Fragment Shader: "%(FullPath)"</Message>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">Compiling Fragment Shader: "%(FullPath)"</Message>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">$(IntDir)%(Filename)_sb.obj;%(Outputs)</Outputs>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">$(IntDir)%(Filename)_sb.obj;%(Outputs)</Outputs>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">true</ExcludedFromBuild>
-    </CustomBuild>
-    <CustomBuild Include="resource\sampleutil_sprite2d_yuy2_v.cg">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">true</ExcludedFromBuild>
-      <FileType>Document</FileType>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">"$(SCE_PSP2_SDK_DIR)"\host_tools\bin\psp2cgc.exe --profile sce_vp_psp2 "%(FullPath)" -o "$(IntDir)%(Filename).gxp"
-"$(SCE_PSP2_SDK_DIR)"\host_tools\build\bin\psp2bin.exe "$(IntDir)%(Filename).gxp" -b2e PSP2,_binary_%(Filename)_gxp_start,_binary_%(Filename)_gxp_size,4 -o "$(IntDir)%(Filename)_gxp.obj"
-</Command>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">Compiling Vertex Shader: "%(FullPath)"</Message>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Release|PSVita'">Compiling Vertex Shader: "%(FullPath)"</Message>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">$(IntDir)%(Filename)_gxp.obj;%(Outputs)</Outputs>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|PSVita'">$(IntDir)%(Filename)_gxp.obj;%(Outputs)</Outputs>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|PSVita'">"$(SCE_PSP2_SDK_DIR)"\host_tools\bin\psp2cgc.exe --profile sce_vp_psp2 "%(FullPath)" -o "$(IntDir)%(Filename).gxp"
-"$(SCE_PSP2_SDK_DIR)"\host_tools\build\bin\psp2bin.exe "$(IntDir)%(Filename).gxp" -b2e PSP2,_binary_%(Filename)_gxp_start,_binary_%(Filename)_gxp_size,4 -o "$(IntDir)%(Filename)_gxp.obj"
-</Command>
-    </CustomBuild>
-    <CustomBuild Include="resource\sampleutil_sprite2d_yuy2_v.pssl">
-      <FileType>Document</FileType>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">$(IntDir)%(Filename)_sb.obj;%(Outputs)</Outputs>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">$(IntDir)%(Filename)_sb.obj;%(Outputs)</Outputs>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">Compiling Vertex Shader: "%(FullPath)"</Message>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">Compiling Vertex Shader: "%(FullPath)"</Message>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">if not exist "$(IntDir)" md "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-wave-psslc.exe" -profile sce_vs_vs_orbis "%(FullPath)" -o "$(IntDir)%(Filename).sb"
-pushd "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-objcopy.exe"  -I binary -O elf64-x86-64  -B i386 "%(Filename).sb" "%(Filename)_sb.obj"
-popd</Command>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">if not exist "$(IntDir)" md "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-wave-psslc.exe" -profile sce_vs_vs_orbis "%(FullPath)" -o "$(IntDir)%(Filename).sb"
-pushd "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-objcopy.exe"  -I binary -O elf64-x86-64  -B i386 "%(Filename).sb" "%(Filename)_sb.obj"
-popd</Command>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">true</ExcludedFromBuild>
-    </CustomBuild>
-    <CustomBuild Include="resource\sampleutil_fill3d_f.cg">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">true</ExcludedFromBuild>
-      <FileType>Document</FileType>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">"$(SCE_PSP2_SDK_DIR)"\host_tools\bin\psp2cgc.exe --profile sce_fp_psp2 "%(FullPath)" -o "$(IntDir)%(Filename).gxp"
-"$(SCE_PSP2_SDK_DIR)"\host_tools\build\bin\psp2bin.exe "$(IntDir)%(Filename).gxp" -b2e PSP2,_binary_%(Filename)_gxp_start,_binary_%(Filename)_gxp_size,4 -o "$(IntDir)%(Filename)_gxp.obj"
-</Command>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">Compiling Fragment Shader: "%(FullPath)"</Message>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">$(IntDir)%(Filename)_gxp.obj;%(Outputs)</Outputs>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|PSVita'">"$(SCE_PSP2_SDK_DIR)"\host_tools\bin\psp2cgc.exe --profile sce_fp_psp2 "%(FullPath)" -o "$(IntDir)%(Filename).gxp"
-"$(SCE_PSP2_SDK_DIR)"\host_tools\build\bin\psp2bin.exe "$(IntDir)%(Filename).gxp" -b2e PSP2,_binary_%(Filename)_gxp_start,_binary_%(Filename)_gxp_size,4 -o "$(IntDir)%(Filename)_gxp.obj"
-</Command>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Release|PSVita'">Compiling Fragment Shader: "%(FullPath)"</Message>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|PSVita'">$(IntDir)%(Filename)_gxp.obj;%(Outputs)</Outputs>
-    </CustomBuild>
-    <CustomBuild Include="resource\sampleutil_fill3d_f.pssl">
-      <FileType>Document</FileType>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">if not exist "$(IntDir)" md "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-wave-psslc.exe" -profile sce_ps_orbis "%(FullPath)" -o "$(IntDir)%(Filename).sb"
-pushd "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-objcopy.exe"  -I binary -O elf64-x86-64  -B i386 "%(Filename).sb" "%(Filename)_sb.obj"
-popd</Command>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">Compiling Fragment Shader: "%(FullPath)"</Message>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">$(IntDir)%(Filename)_sb.obj</Outputs>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">true</ExcludedFromBuild>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">if not exist "$(IntDir)" md "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-wave-psslc.exe" -profile sce_ps_orbis "%(FullPath)" -o "$(IntDir)%(Filename).sb"
-pushd "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-objcopy.exe"  -I binary -O elf64-x86-64  -B i386 "%(Filename).sb" "%(Filename)_sb.obj"
-popd</Command>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">Compiling Fragment Shader: "%(FullPath)"</Message>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">$(IntDir)%(Filename)_sb.obj</Outputs>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">if not exist "$(IntDir)" md "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-wave-psslc.exe" -profile sce_ps_orbis "%(FullPath)" -o "$(IntDir)%(Filename).sb"
-pushd "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-objcopy.exe"  -I binary -O elf64-x86-64  -B i386 "%(Filename).sb" "%(Filename)_sb.obj"
-popd</Command>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|PSVita'">if not exist "$(IntDir)" md "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-wave-psslc.exe" -profile sce_ps_orbis "%(FullPath)" -o "$(IntDir)%(Filename).sb"
-pushd "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-objcopy.exe"  -I binary -O elf64-x86-64  -B i386 "%(Filename).sb" "%(Filename)_sb.obj"
-popd</Command>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">Compiling Fragment Shader: "%(FullPath)"</Message>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Release|PSVita'">Compiling Fragment Shader: "%(FullPath)"</Message>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">$(IntDir)%(Filename)_sb.obj;</Outputs>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|PSVita'">$(IntDir)%(Filename)_sb.obj;</Outputs>
-    </CustomBuild>
-    <CustomBuild Include="resource\sampleutil_fill3d_v.cg">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">true</ExcludedFromBuild>
-      <FileType>Document</FileType>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">"$(SCE_PSP2_SDK_DIR)"\host_tools\bin\psp2cgc.exe --profile sce_vp_psp2 "%(FullPath)" -o "$(IntDir)%(Filename).gxp"
-"$(SCE_PSP2_SDK_DIR)"\host_tools\build\bin\psp2bin.exe "$(IntDir)%(Filename).gxp" -b2e PSP2,_binary_%(Filename)_gxp_start,_binary_%(Filename)_gxp_size,4 -o "$(IntDir)%(Filename)_gxp.obj"
-</Command>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">Compiling Vertex Shader: "%(FullPath)"</Message>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">$(IntDir)%(Filename)_gxp.obj;%(Outputs)</Outputs>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|PSVita'">"$(SCE_PSP2_SDK_DIR)"\host_tools\bin\psp2cgc.exe --profile sce_vp_psp2 "%(FullPath)" -o "$(IntDir)%(Filename).gxp"
-"$(SCE_PSP2_SDK_DIR)"\host_tools\build\bin\psp2bin.exe "$(IntDir)%(Filename).gxp" -b2e PSP2,_binary_%(Filename)_gxp_start,_binary_%(Filename)_gxp_size,4 -o "$(IntDir)%(Filename)_gxp.obj"
-</Command>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Release|PSVita'">Compiling Vertex Shader: "%(FullPath)"</Message>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|PSVita'">$(IntDir)%(Filename)_gxp.obj;%(Outputs)</Outputs>
-    </CustomBuild>
-    <CustomBuild Include="resource\sampleutil_fill3d_v.pssl">
-      <FileType>Document</FileType>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">if not exist "$(IntDir)" md "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-wave-psslc.exe" -profile sce_vs_vs_orbis "%(FullPath)" -o "$(IntDir)%(Filename).sb"
-pushd "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-objcopy.exe"  -I binary -O elf64-x86-64  -B i386 "%(Filename).sb" "%(Filename)_sb.obj"
-popd</Command>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">Compiling Vertex Shader: "%(FullPath)"</Message>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">$(IntDir)%(Filename)_sb.obj</Outputs>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">true</ExcludedFromBuild>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">if not exist "$(IntDir)" md "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-wave-psslc.exe" -profile sce_vs_vs_orbis "%(FullPath)" -o "$(IntDir)%(Filename).sb"
-pushd "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-objcopy.exe"  -I binary -O elf64-x86-64  -B i386 "%(Filename).sb" "%(Filename)_sb.obj"
-popd</Command>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">Compiling Vertex Shader: "%(FullPath)"</Message>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">$(IntDir)%(Filename)_sb.obj</Outputs>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">if not exist "$(IntDir)" md "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-wave-psslc.exe" -profile sce_vs_vs_orbis "%(FullPath)" -o "$(IntDir)%(Filename).sb"
-pushd "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-objcopy.exe"  -I binary -O elf64-x86-64  -B i386 "%(Filename).sb" "%(Filename)_sb.obj"
-popd</Command>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|PSVita'">if not exist "$(IntDir)" md "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-wave-psslc.exe" -profile sce_vs_vs_orbis "%(FullPath)" -o "$(IntDir)%(Filename).sb"
-pushd "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-objcopy.exe"  -I binary -O elf64-x86-64  -B i386 "%(Filename).sb" "%(Filename)_sb.obj"
-popd</Command>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">Compiling Vertex Shader: "%(FullPath)"</Message>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Release|PSVita'">Compiling Vertex Shader: "%(FullPath)"</Message>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">$(IntDir)%(Filename)_sb.obj;</Outputs>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|PSVita'">$(IntDir)%(Filename)_sb.obj;</Outputs>
-    </CustomBuild>
-    <CustomBuild Include="resource\sampleutil_wireframe_f.cg">
-      <FileType>Document</FileType>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">"$(SCE_PSP2_SDK_DIR)"\host_tools\bin\psp2cgc.exe --profile sce_fp_psp2 "%(FullPath)" -o "$(IntDir)%(Filename).gxp"
-"$(SCE_PSP2_SDK_DIR)"\host_tools\build\bin\psp2bin.exe "$(IntDir)%(Filename).gxp" -b2e PSP2,_binary_%(Filename)_gxp_start,_binary_%(Filename)_gxp_size,4 -o "$(IntDir)%(Filename)_gxp.obj"
-</Command>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|PSVita'">"$(SCE_PSP2_SDK_DIR)"\host_tools\bin\psp2cgc.exe --profile sce_fp_psp2 "%(FullPath)" -o "$(IntDir)%(Filename).gxp"
-"$(SCE_PSP2_SDK_DIR)"\host_tools\build\bin\psp2bin.exe "$(IntDir)%(Filename).gxp" -b2e PSP2,_binary_%(Filename)_gxp_start,_binary_%(Filename)_gxp_size,4 -o "$(IntDir)%(Filename)_gxp.obj"
-</Command>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">Compiling Fragment Shader: "%(FullPath)"</Message>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Release|PSVita'">Compiling Fragment Shader: "%(FullPath)"</Message>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">$(IntDir)%(Filename)_gxp.obj;%(Outputs)</Outputs>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|PSVita'">$(IntDir)%(Filename)_gxp.obj;%(Outputs)</Outputs>
-    </CustomBuild>
-    <CustomBuild Include="resource\sampleutil_wireframe_f.pssl">
-      <FileType>Document</FileType>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">if not exist "$(IntDir)" md "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-wave-psslc.exe" -profile sce_ps_orbis "%(FullPath)" -o "$(IntDir)%(Filename).sb"
-pushd "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-objcopy.exe"  -I binary -O elf64-x86-64  -B i386 "%(Filename).sb" "%(Filename)_sb.obj"
-popd</Command>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">if not exist "$(IntDir)" md "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-wave-psslc.exe" -profile sce_ps_orbis "%(FullPath)" -o "$(IntDir)%(Filename).sb"
-pushd "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-objcopy.exe"  -I binary -O elf64-x86-64  -B i386 "%(Filename).sb" "%(Filename)_sb.obj"
-popd</Command>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">Compiling Fragment Shader: "%(FullPath)"</Message>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">Compiling Fragment Shader: "%(FullPath)"</Message>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">$(IntDir)%(Filename)_sb.obj;%(Outputs)</Outputs>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">$(IntDir)%(Filename)_sb.obj;%(Outputs)</Outputs>
-    </CustomBuild>
-    <CustomBuild Include="resource\sampleutil_wireframe_v.cg">
-      <FileType>Document</FileType>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">"$(SCE_PSP2_SDK_DIR)"\host_tools\bin\psp2cgc.exe --profile sce_vp_psp2 "%(FullPath)" -o "$(IntDir)%(Filename).gxp"
-"$(SCE_PSP2_SDK_DIR)"\host_tools\build\bin\psp2bin.exe "$(IntDir)%(Filename).gxp" -b2e PSP2,_binary_%(Filename)_gxp_start,_binary_%(Filename)_gxp_size,4 -o "$(IntDir)%(Filename)_gxp.obj"
-</Command>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|PSVita'">"$(SCE_PSP2_SDK_DIR)"\host_tools\bin\psp2cgc.exe --profile sce_vp_psp2 "%(FullPath)" -o "$(IntDir)%(Filename).gxp"
-"$(SCE_PSP2_SDK_DIR)"\host_tools\build\bin\psp2bin.exe "$(IntDir)%(Filename).gxp" -b2e PSP2,_binary_%(Filename)_gxp_start,_binary_%(Filename)_gxp_size,4 -o "$(IntDir)%(Filename)_gxp.obj"
-</Command>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">Compiling Vertex Shader: "%(FullPath)"</Message>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Release|PSVita'">Compiling Vertex Shader: "%(FullPath)"</Message>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">$(IntDir)%(Filename)_gxp.obj;%(Outputs)</Outputs>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|PSVita'">$(IntDir)%(Filename)_gxp.obj;%(Outputs)</Outputs>
-    </CustomBuild>
-    <CustomBuild Include="resource\sampleutil_wireframe_v.pssl">
-      <FileType>Document</FileType>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">if not exist "$(IntDir)" md "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-wave-psslc.exe" -profile sce_vs_vs_orbis "%(FullPath)" -o "$(IntDir)%(Filename).sb"
-pushd "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-objcopy.exe"  -I binary -O elf64-x86-64  -B i386 "%(Filename).sb" "%(Filename)_sb.obj"
-popd</Command>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">if not exist "$(IntDir)" md "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-wave-psslc.exe" -profile sce_vs_vs_orbis "%(FullPath)" -o "$(IntDir)%(Filename).sb"
-pushd "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-objcopy.exe"  -I binary -O elf64-x86-64  -B i386 "%(Filename).sb" "%(Filename)_sb.obj"
-popd</Command>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">Compiling Vertex Shader: "%(FullPath)"</Message>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">Compiling Vertex Shader: "%(FullPath)"</Message>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">$(IntDir)%(Filename)_sb.obj;%(Outputs)</Outputs>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">$(IntDir)%(Filename)_sb.obj;%(Outputs)</Outputs>
-    </CustomBuild>
-    <CustomBuild Include="resource\sampleutil_sprite2d_ycbcr_f.pssl">
-      <FileType>Document</FileType>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">if not exist "$(IntDir)" md "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-wave-psslc.exe" -profile sce_ps_orbis "%(FullPath)" -o "$(IntDir)%(Filename).sb"
-pushd "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-objcopy.exe"  -I binary -O elf64-x86-64  -B i386 "%(Filename).sb" "%(Filename)_sb.obj"
-popd
-</Command>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">Compiling Fragment Shader: "%(FullPath)"</Message>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">$(IntDir)%(Filename)_sb.obj</Outputs>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">if not exist "$(IntDir)" md "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-wave-psslc.exe" -profile sce_ps_orbis "%(FullPath)" -o "$(IntDir)%(Filename).sb"
-pushd "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-objcopy.exe"  -I binary -O elf64-x86-64  -B i386 "%(Filename).sb" "%(Filename)_sb.obj"
-popd
-</Command>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">Compiling Fragment Shader: "%(FullPath)"</Message>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">$(IntDir)%(Filename)_sb.obj</Outputs>
-    </CustomBuild>
-    <CustomBuild Include="resource\sampleutil_sprite2d_ycbcr_v.pssl">
-      <FileType>Document</FileType>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">if not exist "$(IntDir)" md "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-wave-psslc.exe" -profile sce_vs_vs_orbis "%(FullPath)" -o "$(IntDir)%(Filename).sb"
-pushd "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-objcopy.exe"  -I binary -O elf64-x86-64  -B i386 "%(Filename).sb" "%(Filename)_sb.obj"
-popd
-</Command>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">if not exist "$(IntDir)" md "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-wave-psslc.exe" -profile sce_vs_vs_orbis "%(FullPath)" -o "$(IntDir)%(Filename).sb"
-pushd "$(IntDir)"
-"$(SCE_ORBIS_SDK_DIR)\host_tools\bin\orbis-objcopy.exe"  -I binary -O elf64-x86-64  -B i386 "%(Filename).sb" "%(Filename)_sb.obj"
-popd
-</Command>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">Compiling Vertex Shader: "%(FullPath)"</Message>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">$(IntDir)%(Filename)_sb.obj</Outputs>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">Compiling Vertex Shader: "%(FullPath)"</Message>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">$(IntDir)%(Filename)_sb.obj</Outputs>
-    </CustomBuild>
-    <None Include="resource\vsoutput.hs" />
-  </ItemGroup>
-  <ItemGroup>
-    <ResourceCompile Include="resource\libSceSampleUtil.rc" />
-  </ItemGroup>
-  <Import Condition="'$(ConfigurationType)' == 'Makefile' and Exists('$(VCTargetsPath)\Platforms\$(Platform)\SCE.Makefile.$(Platform).targets')" Project="$(VCTargetsPath)\Platforms\$(Platform)\SCE.Makefile.$(Platform).targets" />
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
-  <ImportGroup Label="ExtensionTargets">
-  </ImportGroup>
-</Project>
\ No newline at end of file
diff --git a/src/third_party/libvpx_gpu/vp9-dec-test/PS4/common/source/sampleutil/libSceSampleUtil.vcxproj.filters b/src/third_party/libvpx_gpu/vp9-dec-test/PS4/common/source/sampleutil/libSceSampleUtil.vcxproj.filters
deleted file mode 100644
index 7284c3d..0000000
--- a/src/third_party/libvpx_gpu/vp9-dec-test/PS4/common/source/sampleutil/libSceSampleUtil.vcxproj.filters
+++ /dev/null
@@ -1,833 +0,0 @@
-﻿<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <ItemGroup>
-    <Filter Include="Source Files">
-      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
-      <Extensions>cpp;c;cxx;cc;s;asm</Extensions>
-    </Filter>
-    <Filter Include="Header Files">
-      <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
-      <Extensions>h;hpp</Extensions>
-    </Filter>
-    <Filter Include="Source Files\graphics">
-      <UniqueIdentifier>{b1346de6-e476-4511-b903-d7900f31aa0f}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Source Files\input">
-      <UniqueIdentifier>{77dd35ea-1790-4bdf-932a-211ab73b875b}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Source Files\graphics\collada">
-      <UniqueIdentifier>{96fc6757-68ff-4fc1-aebf-889d255c56b7}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Source Files\graphics\collada\dae">
-      <UniqueIdentifier>{fc715001-0ae0-4f30-aab3-959f7c73bc29}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Source Files\graphics\platform_gnm">
-      <UniqueIdentifier>{ecf91a0b-ee15-4b04-abf4-f61372b83438}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Source Files\audio">
-      <UniqueIdentifier>{f30bddbc-6aad-436b-8ff6-2686aac95c18}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Source Files\audio\ngs2">
-      <UniqueIdentifier>{67e01345-fdb3-473d-bcc2-772196cb6852}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Source Files\Resource">
-      <UniqueIdentifier>{719af2ff-2b25-49d6-bcf2-5613eef4f3f3}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Header Files\sample_util">
-      <UniqueIdentifier>{24b4b573-8fbb-49e0-a960-fe051cb20da3}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Header Files\sample_util\Audio">
-      <UniqueIdentifier>{9be1ca38-b2c3-4228-a208-4fb50c69b823}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Header Files\sample_util\graphics">
-      <UniqueIdentifier>{02155831-4f6c-4313-be6c-0455083f264d}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Header Files\sample_util\graphics\collada">
-      <UniqueIdentifier>{251fc1da-25f4-4982-835e-e4aab23a3ee9}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Header Files\sample_util\graphics\platform_gnm">
-      <UniqueIdentifier>{9a407e69-ecd3-488e-83a3-aed61cd20707}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Header Files\sample_util\debug">
-      <UniqueIdentifier>{09e2ddc6-9563-4fae-8a60-c1c1499a9493}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Source Files\debug">
-      <UniqueIdentifier>{1a668115-ef74-4445-8af9-808390b4ad4d}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Header Files\sample_util\graphics\platform_gxm">
-      <UniqueIdentifier>{8da06857-7958-4602-a123-517aa1d98f5d}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Header Files\sample_util\graphics\platform_dx11">
-      <UniqueIdentifier>{8c93893c-27c0-4eb6-8205-0f7132b8615e}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Source Files\graphics\platform_gxm">
-      <UniqueIdentifier>{21d0ef12-3fc4-4a49-8d9d-622a43acc513}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Source Files\graphics\platform_dx11">
-      <UniqueIdentifier>{b669e6e8-f199-4744-9a55-6e24f82088fa}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Source Files\Resource\pssl">
-      <UniqueIdentifier>{c5092e21-dfbf-4506-8610-2c7790192e9e}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Source Files\Resource\cg">
-      <UniqueIdentifier>{3e4bb032-bb60-4124-a966-9d6261bf8549}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Source Files\audio\ngs">
-      <UniqueIdentifier>{d5851d03-29f7-4e6b-95e2-b51f3e1bb5b0}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Source Files\input\psp2">
-      <UniqueIdentifier>{5805689e-aa21-46d0-a3fb-b3f0d31257db}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Source Files\input\win">
-      <UniqueIdentifier>{249df471-9168-4b5c-b3df-19fb830ecb34}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Source Files\input\orbis">
-      <UniqueIdentifier>{04f123fb-f86e-4833-9370-401bd85796c6}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Header Files\sample_util\input">
-      <UniqueIdentifier>{efe408b5-ffd2-43ae-9e89-89318a99b8f1}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Source Files\util">
-      <UniqueIdentifier>{18bab552-4afd-4f0f-b241-6c47ab235426}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Header Files\sample_util\system">
-      <UniqueIdentifier>{c714f3b2-b8ba-480b-8398-dcd8938f5c08}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Source Files\system">
-      <UniqueIdentifier>{c4a34eee-25ee-427d-966b-0f1123e33beb}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Source Files\system\win">
-      <UniqueIdentifier>{131f6b49-ff8f-494a-a2fc-c0b44b6c3cf7}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Source Files\system\orbis">
-      <UniqueIdentifier>{f9c9275c-0ccf-4206-b558-7ccbb825e264}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Source Files\system\psp2">
-      <UniqueIdentifier>{2b5f4786-b6f4-43c2-9c4d-d16e5d308abb}</UniqueIdentifier>
-    </Filter>
-  </ItemGroup>
-  <ItemGroup>
-    <ClInclude Include="graphics\collada\dae\dae.h">
-      <Filter>Source Files\graphics\collada\dae</Filter>
-    </ClInclude>
-    <ClInclude Include="graphics\collada\dae\dae_animation.h">
-      <Filter>Source Files\graphics\collada\dae</Filter>
-    </ClInclude>
-    <ClInclude Include="graphics\collada\dae\dae_common.h">
-      <Filter>Source Files\graphics\collada\dae</Filter>
-    </ClInclude>
-    <ClInclude Include="graphics\collada\dae\dae_control.h">
-      <Filter>Source Files\graphics\collada\dae</Filter>
-    </ClInclude>
-    <ClInclude Include="graphics\collada\dae\dae_data_flow.h">
-      <Filter>Source Files\graphics\collada\dae</Filter>
-    </ClInclude>
-    <ClInclude Include="graphics\collada\dae\dae_effect.h">
-      <Filter>Source Files\graphics\collada\dae</Filter>
-    </ClInclude>
-    <ClInclude Include="graphics\collada\dae\dae_geometry.h">
-      <Filter>Source Files\graphics\collada\dae</Filter>
-    </ClInclude>
-    <ClInclude Include="graphics\collada\dae\dae_scene.h">
-      <Filter>Source Files\graphics\collada\dae</Filter>
-    </ClInclude>
-    <ClInclude Include="graphics\collada\dae\dae_transform.h">
-      <Filter>Source Files\graphics\collada\dae</Filter>
-    </ClInclude>
-    <ClInclude Include="graphics\collada\dae\dae_vscene.h">
-      <Filter>Source Files\graphics\collada\dae</Filter>
-    </ClInclude>
-    <ClInclude Include="graphics\collada\collada_internal.h">
-      <Filter>Source Files\graphics\collada</Filter>
-    </ClInclude>
-    <ClInclude Include="graphics\collada\collada_material.h">
-      <Filter>Source Files\graphics\collada</Filter>
-    </ClInclude>
-    <ClInclude Include="graphics\collada\collada_scene.h">
-      <Filter>Source Files\graphics\collada</Filter>
-    </ClInclude>
-    <ClInclude Include="graphics\collada\collada_util.h">
-      <Filter>Source Files\graphics\collada</Filter>
-    </ClInclude>
-    <ClInclude Include="graphics\platform_gnm\gnm_internal.h">
-      <Filter>Source Files\graphics\platform_gnm</Filter>
-    </ClInclude>
-    <ClInclude Include="graphics\image.h">
-      <Filter>Source Files\graphics</Filter>
-    </ClInclude>
-    <ClInclude Include="graphics\collada\collada_transform.h">
-      <Filter>Source Files\graphics\collada</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\include\sampleutil\graphics.h">
-      <Filter>Header Files\sample_util</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\include\sampleutil\graphics\buffer.h">
-      <Filter>Header Files\sample_util\graphics</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\include\sampleutil\graphics\collada.h">
-      <Filter>Header Files\sample_util\graphics</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\include\sampleutil\graphics\constant.h">
-      <Filter>Header Files\sample_util\graphics</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\include\sampleutil\graphics\context.h">
-      <Filter>Header Files\sample_util\graphics</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\include\sampleutil\graphics\effect.h">
-      <Filter>Header Files\sample_util\graphics</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\include\sampleutil\graphics\loader.h">
-      <Filter>Header Files\sample_util\graphics</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\include\sampleutil\graphics\platform.h">
-      <Filter>Header Files\sample_util\graphics</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\include\sampleutil\graphics\program.h">
-      <Filter>Header Files\sample_util\graphics</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\include\sampleutil\graphics\sprite.h">
-      <Filter>Header Files\sample_util\graphics</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\include\sampleutil\graphics\platform_gnm\platform_gnm.h">
-      <Filter>Header Files\sample_util\graphics\platform_gnm</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\include\sampleutil\graphics\collada\collada_animation.h">
-      <Filter>Header Files\sample_util\graphics\collada</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\include\sampleutil\graphics\collada\collada_base.h">
-      <Filter>Header Files\sample_util\graphics\collada</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\include\sampleutil\graphics\collada\collada_effect.h">
-      <Filter>Header Files\sample_util\graphics\collada</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\include\sampleutil\graphics\collada\collada_geometry.h">
-      <Filter>Header Files\sample_util\graphics\collada</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\include\sampleutil\graphics\collada\collada_image.h">
-      <Filter>Header Files\sample_util\graphics\collada</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\include\sampleutil\graphics\collada\collada_scene.h">
-      <Filter>Header Files\sample_util\graphics\collada</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\include\sampleutil\audio.h">
-      <Filter>Header Files\sample_util</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\include\sampleutil\audio\context.h">
-      <Filter>Header Files\sample_util\Audio</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\include\sampleutil\audio\data.h">
-      <Filter>Header Files\sample_util\Audio</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\include\sampleutil\audio\voice.h">
-      <Filter>Header Files\sample_util\Audio</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\include\sampleutil\input.h">
-      <Filter>Header Files\sample_util</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\include\sampleutil\sampleutil_common.h">
-      <Filter>Header Files\sample_util</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\include\sampleutil\sampleutil_error.h">
-      <Filter>Header Files\sample_util</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\include\sampleutil\skeleton.h">
-      <Filter>Header Files\sample_util</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\include\sampleutil.h">
-      <Filter>Header Files\sample_util</Filter>
-    </ClInclude>
-    <ClInclude Include="audio\ngs2\ngs2_internal.h">
-      <Filter>Source Files\audio\ngs2</Filter>
-    </ClInclude>
-    <ClInclude Include="audio\ngs2\ngs2_stream.h">
-      <Filter>Source Files\audio\ngs2</Filter>
-    </ClInclude>
-    <ClInclude Include="resource\resource_manager.h">
-      <Filter>Source Files\Resource</Filter>
-    </ClInclude>
-    <ClInclude Include="resource\shader_base.h">
-      <Filter>Source Files\Resource</Filter>
-    </ClInclude>
-    <ClInclude Include="resource\std_cbuffer.h">
-      <Filter>Source Files\Resource</Filter>
-    </ClInclude>
-    <ClInclude Include="stdafx.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\include\sampleutil\debug\console.h">
-      <Filter>Header Files\sample_util\debug</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\include\sampleutil\debug\menu.h">
-      <Filter>Header Files\sample_util\debug</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\include\sampleutil\graphics\font.h">
-      <Filter>Header Files\sample_util\graphics</Filter>
-    </ClInclude>
-    <ClInclude Include="graphics\graphics_internal.h">
-      <Filter>Source Files\graphics</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\include\sampleutil\graphics\platform_gxm\platform_gxm.h">
-      <Filter>Header Files\sample_util\graphics\platform_gxm</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\include\sampleutil\graphics\platform_dx11\platform_dx11.h">
-      <Filter>Header Files\sample_util\graphics\platform_dx11</Filter>
-    </ClInclude>
-    <ClInclude Include="graphics\platform_gxm\gxm_internal.h">
-      <Filter>Source Files\graphics\platform_gxm</Filter>
-    </ClInclude>
-    <ClInclude Include="graphics\platform_dx11\dx11_internal.h">
-      <Filter>Source Files\graphics\platform_dx11</Filter>
-    </ClInclude>
-    <ClInclude Include="graphics\platform_gnm\image_gnm.h">
-      <Filter>Source Files\graphics\platform_gnm</Filter>
-    </ClInclude>
-    <ClInclude Include="graphics\constant_internal.h">
-      <Filter>Source Files\graphics</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\include\sampleutil\input\controller.h">
-      <Filter>Header Files\sample_util\input</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\include\sampleutil\input\motion.h">
-      <Filter>Header Files\sample_util\input</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\include\sampleutil\input\touch.h">
-      <Filter>Header Files\sample_util\input</Filter>
-    </ClInclude>
-    <ClInclude Include="audio\ngs\ngs_internal.h">
-      <Filter>Source Files\audio\ngs</Filter>
-    </ClInclude>
-    <ClInclude Include="graphics\platform_gxm\heap_gxm.h">
-      <Filter>Source Files\graphics\platform_gxm</Filter>
-    </ClInclude>
-    <ClInclude Include="graphics\platform_gnm\heap_gnm.h">
-      <Filter>Source Files\graphics\platform_gnm</Filter>
-    </ClInclude>
-    <ClInclude Include="util\util.h">
-      <Filter>Source Files\util</Filter>
-    </ClInclude>
-    <ClInclude Include="graphics\platform_gxm\texture_util_gxm.h">
-      <Filter>Source Files\graphics\platform_gxm</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\include\sampleutil\system.h">
-      <Filter>Header Files\sample_util</Filter>
-    </ClInclude>
-    <ClInclude Include="graphics\platform_gnm\buffer_internal_gnm.h">
-      <Filter>Source Files\graphics\platform_gnm</Filter>
-    </ClInclude>
-    <ClInclude Include="graphics\platform_gnm\constant_internal_gnm.h">
-      <Filter>Source Files\graphics\platform_gnm</Filter>
-    </ClInclude>
-    <ClInclude Include="graphics\platform_gnm\context_internal_gnm.h">
-      <Filter>Source Files\graphics\platform_gnm</Filter>
-    </ClInclude>
-    <ClInclude Include="graphics\platform_gnm\loader_internal_gnm.h">
-      <Filter>Source Files\graphics\platform_gnm</Filter>
-    </ClInclude>
-    <ClInclude Include="graphics\platform_gnm\program_internal_gnm.h">
-      <Filter>Source Files\graphics\platform_gnm</Filter>
-    </ClInclude>
-    <ClInclude Include="graphics\platform_dx11\buffer_internal_dx11.h">
-      <Filter>Source Files\graphics\platform_dx11</Filter>
-    </ClInclude>
-    <ClInclude Include="graphics\platform_dx11\constant_internal_dx11.h">
-      <Filter>Source Files\graphics\platform_dx11</Filter>
-    </ClInclude>
-    <ClInclude Include="graphics\platform_dx11\context_internal_dx11.h">
-      <Filter>Source Files\graphics\platform_dx11</Filter>
-    </ClInclude>
-    <ClInclude Include="graphics\platform_dx11\loader_internal_dx11.h">
-      <Filter>Source Files\graphics\platform_dx11</Filter>
-    </ClInclude>
-    <ClInclude Include="graphics\platform_dx11\program_internal_dx11.h">
-      <Filter>Source Files\graphics\platform_dx11</Filter>
-    </ClInclude>
-    <ClInclude Include="sampleutil_internal.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-    <ClInclude Include="graphics\font_internal.h">
-      <Filter>Source Files\graphics</Filter>
-    </ClInclude>
-    <ClInclude Include="graphics\platform_gxm\buffer_internal_gxm.h">
-      <Filter>Source Files\graphics\platform_gxm</Filter>
-    </ClInclude>
-    <ClInclude Include="graphics\platform_gxm\constant_internal_gxm.h">
-      <Filter>Source Files\graphics\platform_gxm</Filter>
-    </ClInclude>
-    <ClInclude Include="graphics\platform_gxm\context_internal_gxm.h">
-      <Filter>Source Files\graphics\platform_gxm</Filter>
-    </ClInclude>
-    <ClInclude Include="graphics\platform_gxm\loader_internal_gxm.h">
-      <Filter>Source Files\graphics\platform_gxm</Filter>
-    </ClInclude>
-    <ClInclude Include="graphics\platform_gxm\program_internal_gxm.h">
-      <Filter>Source Files\graphics\platform_gxm</Filter>
-    </ClInclude>
-    <ClInclude Include="debug\debug_menu_internal.h">
-      <Filter>Source Files\debug</Filter>
-    </ClInclude>
-    <ClInclude Include="graphics\platform_dx11\font_win.h">
-      <Filter>Source Files\graphics\platform_dx11</Filter>
-    </ClInclude>
-    <ClInclude Include="graphics\platform_gnm\font_orbis.h">
-      <Filter>Source Files\graphics\platform_gnm</Filter>
-    </ClInclude>
-    <ClInclude Include="graphics\platform_gxm\font_psp2.h">
-      <Filter>Source Files\graphics\platform_gxm</Filter>
-    </ClInclude>
-    <ClInclude Include="graphics\sprite_internal.h">
-      <Filter>Source Files\graphics</Filter>
-    </ClInclude>
-    <ClInclude Include="input\pad_common.h">
-      <Filter>Source Files\input</Filter>
-    </ClInclude>
-    <ClInclude Include="input\controller_common.h">
-      <Filter>Source Files\input</Filter>
-    </ClInclude>
-    <ClInclude Include="audio\audio_internal.h">
-      <Filter>Source Files\audio</Filter>
-    </ClInclude>
-    <ClInclude Include="audio\ngs\ngs_module.h">
-      <Filter>Source Files\audio\ngs</Filter>
-    </ClInclude>
-  </ItemGroup>
-  <ItemGroup>
-    <ClCompile Include="graphics\frame_buffer.cpp">
-      <Filter>Source Files\graphics</Filter>
-    </ClCompile>
-    <ClCompile Include="graphics\loader.cpp">
-      <Filter>Source Files\graphics</Filter>
-    </ClCompile>
-    <ClCompile Include="graphics\program.cpp">
-      <Filter>Source Files\graphics</Filter>
-    </ClCompile>
-    <ClCompile Include="graphics\effect.cpp">
-      <Filter>Source Files\graphics</Filter>
-    </ClCompile>
-    <ClCompile Include="graphics\sprite.cpp">
-      <Filter>Source Files\graphics</Filter>
-    </ClCompile>
-    <ClCompile Include="graphics\texture.cpp">
-      <Filter>Source Files\graphics</Filter>
-    </ClCompile>
-    <ClCompile Include="graphics\collada\dae\dae_animation.cpp">
-      <Filter>Source Files\graphics\collada\dae</Filter>
-    </ClCompile>
-    <ClCompile Include="graphics\collada\dae\dae_control.cpp">
-      <Filter>Source Files\graphics\collada\dae</Filter>
-    </ClCompile>
-    <ClCompile Include="graphics\collada\dae\dae_data_flow.cpp">
-      <Filter>Source Files\graphics\collada\dae</Filter>
-    </ClCompile>
-    <ClCompile Include="graphics\collada\dae\dae_effect.cpp">
-      <Filter>Source Files\graphics\collada\dae</Filter>
-    </ClCompile>
-    <ClCompile Include="graphics\collada\dae\dae_geom.cpp">
-      <Filter>Source Files\graphics\collada\dae</Filter>
-    </ClCompile>
-    <ClCompile Include="graphics\collada\dae\dae_geometry.cpp">
-      <Filter>Source Files\graphics\collada\dae</Filter>
-    </ClCompile>
-    <ClCompile Include="graphics\collada\dae\dae_scene.cpp">
-      <Filter>Source Files\graphics\collada\dae</Filter>
-    </ClCompile>
-    <ClCompile Include="graphics\collada\dae\dae_transform.cpp">
-      <Filter>Source Files\graphics\collada\dae</Filter>
-    </ClCompile>
-    <ClCompile Include="graphics\collada\collada.cpp">
-      <Filter>Source Files\graphics\collada</Filter>
-    </ClCompile>
-    <ClCompile Include="graphics\collada\collada_animation.cpp">
-      <Filter>Source Files\graphics\collada</Filter>
-    </ClCompile>
-    <ClCompile Include="graphics\collada\collada_base.cpp">
-      <Filter>Source Files\graphics\collada</Filter>
-    </ClCompile>
-    <ClCompile Include="graphics\collada\collada_controller.cpp">
-      <Filter>Source Files\graphics\collada</Filter>
-    </ClCompile>
-    <ClCompile Include="graphics\collada\collada_effect.cpp">
-      <Filter>Source Files\graphics\collada</Filter>
-    </ClCompile>
-    <ClCompile Include="graphics\collada\collada_geometry.cpp">
-      <Filter>Source Files\graphics\collada</Filter>
-    </ClCompile>
-    <ClCompile Include="graphics\collada\collada_image.cpp">
-      <Filter>Source Files\graphics\collada</Filter>
-    </ClCompile>
-    <ClCompile Include="graphics\collada\collada_scene.cpp">
-      <Filter>Source Files\graphics\collada</Filter>
-    </ClCompile>
-    <ClCompile Include="graphics\platform_gnm\buffer_gnm.cpp">
-      <Filter>Source Files\graphics\platform_gnm</Filter>
-    </ClCompile>
-    <ClCompile Include="graphics\platform_gnm\constant_gnm.cpp">
-      <Filter>Source Files\graphics\platform_gnm</Filter>
-    </ClCompile>
-    <ClCompile Include="graphics\platform_gnm\context_gnm.cpp">
-      <Filter>Source Files\graphics\platform_gnm</Filter>
-    </ClCompile>
-    <ClCompile Include="graphics\platform_gnm\frame_buffer_gnm.cpp">
-      <Filter>Source Files\graphics\platform_gnm</Filter>
-    </ClCompile>
-    <ClCompile Include="graphics\platform_gnm\loader_gnm.cpp">
-      <Filter>Source Files\graphics\platform_gnm</Filter>
-    </ClCompile>
-    <ClCompile Include="graphics\platform_gnm\program_gnm.cpp">
-      <Filter>Source Files\graphics\platform_gnm</Filter>
-    </ClCompile>
-    <ClCompile Include="graphics\platform_gnm\render_target_gnm.cpp">
-      <Filter>Source Files\graphics\platform_gnm</Filter>
-    </ClCompile>
-    <ClCompile Include="graphics\platform_gnm\texture_gnm.cpp">
-      <Filter>Source Files\graphics\platform_gnm</Filter>
-    </ClCompile>
-    <ClCompile Include="graphics\image.cpp">
-      <Filter>Source Files\graphics</Filter>
-    </ClCompile>
-    <ClCompile Include="audio\ngs2\ngs2_context.cpp">
-      <Filter>Source Files\audio\ngs2</Filter>
-    </ClCompile>
-    <ClCompile Include="audio\ngs2\ngs2_voice.cpp">
-      <Filter>Source Files\audio\ngs2</Filter>
-    </ClCompile>
-    <ClCompile Include="audio\ngs2\ngs2_data.cpp">
-      <Filter>Source Files\audio\ngs2</Filter>
-    </ClCompile>
-    <ClCompile Include="audio\ngs2\ngs2_rack.cpp">
-      <Filter>Source Files\audio\ngs2</Filter>
-    </ClCompile>
-    <ClCompile Include="audio\ngs2\ngs2_stream.cpp">
-      <Filter>Source Files\audio\ngs2</Filter>
-    </ClCompile>
-    <ClCompile Include="audio\ngs2\ngs2_thread.cpp">
-      <Filter>Source Files\audio\ngs2</Filter>
-    </ClCompile>
-    <ClCompile Include="resource\resource_manager.cpp">
-      <Filter>Source Files\Resource</Filter>
-    </ClCompile>
-    <ClCompile Include="graphics\collada\collada_util.cpp">
-      <Filter>Source Files\graphics\collada</Filter>
-    </ClCompile>
-    <ClCompile Include="skeleton.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="debug\console.cpp">
-      <Filter>Source Files\debug</Filter>
-    </ClCompile>
-    <ClCompile Include="debug\menu.cpp">
-      <Filter>Source Files\debug</Filter>
-    </ClCompile>
-    <ClCompile Include="graphics\platform_gxm\buffer_gxm.cpp">
-      <Filter>Source Files\graphics\platform_gxm</Filter>
-    </ClCompile>
-    <ClCompile Include="graphics\platform_gxm\constant_gxm.cpp">
-      <Filter>Source Files\graphics\platform_gxm</Filter>
-    </ClCompile>
-    <ClCompile Include="graphics\platform_gxm\context_gxm.cpp">
-      <Filter>Source Files\graphics\platform_gxm</Filter>
-    </ClCompile>
-    <ClCompile Include="graphics\platform_gxm\frame_buffer_gxm.cpp">
-      <Filter>Source Files\graphics\platform_gxm</Filter>
-    </ClCompile>
-    <ClCompile Include="graphics\platform_gxm\loader_gxm.cpp">
-      <Filter>Source Files\graphics\platform_gxm</Filter>
-    </ClCompile>
-    <ClCompile Include="graphics\platform_gxm\program_gxm.cpp">
-      <Filter>Source Files\graphics\platform_gxm</Filter>
-    </ClCompile>
-    <ClCompile Include="graphics\platform_gxm\render_target_gxm.cpp">
-      <Filter>Source Files\graphics\platform_gxm</Filter>
-    </ClCompile>
-    <ClCompile Include="graphics\platform_gxm\texture_gxm.cpp">
-      <Filter>Source Files\graphics\platform_gxm</Filter>
-    </ClCompile>
-    <ClCompile Include="graphics\platform_dx11\buffer_dx11.cpp">
-      <Filter>Source Files\graphics\platform_dx11</Filter>
-    </ClCompile>
-    <ClCompile Include="graphics\platform_dx11\constant_dx11.cpp">
-      <Filter>Source Files\graphics\platform_dx11</Filter>
-    </ClCompile>
-    <ClCompile Include="graphics\platform_dx11\context_dx11.cpp">
-      <Filter>Source Files\graphics\platform_dx11</Filter>
-    </ClCompile>
-    <ClCompile Include="graphics\platform_dx11\frame_buffer_dx11.cpp">
-      <Filter>Source Files\graphics\platform_dx11</Filter>
-    </ClCompile>
-    <ClCompile Include="graphics\platform_dx11\loader_dx11.cpp">
-      <Filter>Source Files\graphics\platform_dx11</Filter>
-    </ClCompile>
-    <ClCompile Include="graphics\platform_dx11\program_dx11.cpp">
-      <Filter>Source Files\graphics\platform_dx11</Filter>
-    </ClCompile>
-    <ClCompile Include="graphics\platform_dx11\render_target_dx11.cpp">
-      <Filter>Source Files\graphics\platform_dx11</Filter>
-    </ClCompile>
-    <ClCompile Include="graphics\platform_dx11\texture_dx11.cpp">
-      <Filter>Source Files\graphics\platform_dx11</Filter>
-    </ClCompile>
-    <ClCompile Include="graphics\platform_gnm\image_gnm.cpp">
-      <Filter>Source Files\graphics\platform_gnm</Filter>
-    </ClCompile>
-    <ClCompile Include="graphics\platform_gnm\shader_loader_gnm.cpp">
-      <Filter>Source Files\graphics\platform_gnm</Filter>
-    </ClCompile>
-    <ClCompile Include="graphics\buffer.cpp">
-      <Filter>Source Files\graphics</Filter>
-    </ClCompile>
-    <ClCompile Include="audio\audio.cpp">
-      <Filter>Source Files\audio</Filter>
-    </ClCompile>
-    <ClCompile Include="input\psp2\controller_psp2.cpp">
-      <Filter>Source Files\input\psp2</Filter>
-    </ClCompile>
-    <ClCompile Include="input\psp2\touch_psp2.cpp">
-      <Filter>Source Files\input\psp2</Filter>
-    </ClCompile>
-    <ClCompile Include="input\win\controller_win.cpp">
-      <Filter>Source Files\input\win</Filter>
-    </ClCompile>
-    <ClCompile Include="input\win\touch_win.cpp">
-      <Filter>Source Files\input\win</Filter>
-    </ClCompile>
-    <ClCompile Include="audio\ngs\ngs_audio_util.cpp">
-      <Filter>Source Files\audio\ngs</Filter>
-    </ClCompile>
-    <ClCompile Include="audio\ngs\ngs_buss.cpp">
-      <Filter>Source Files\audio\ngs</Filter>
-    </ClCompile>
-    <ClCompile Include="audio\ngs\ngs_context.cpp">
-      <Filter>Source Files\audio\ngs</Filter>
-    </ClCompile>
-    <ClCompile Include="audio\ngs\ngs_data.cpp">
-      <Filter>Source Files\audio\ngs</Filter>
-    </ClCompile>
-    <ClCompile Include="audio\ngs\ngs_module.cpp">
-      <Filter>Source Files\audio\ngs</Filter>
-    </ClCompile>
-    <ClCompile Include="audio\ngs\ngs_stream.cpp">
-      <Filter>Source Files\audio\ngs</Filter>
-    </ClCompile>
-    <ClCompile Include="audio\ngs\ngs_voice.cpp">
-      <Filter>Source Files\audio\ngs</Filter>
-    </ClCompile>
-    <ClCompile Include="audio\ngs\ngs_worker_thread.cpp">
-      <Filter>Source Files\audio\ngs</Filter>
-    </ClCompile>
-    <ClCompile Include="graphics\platform_gxm\heap_gxm.cpp">
-      <Filter>Source Files\graphics\platform_gxm</Filter>
-    </ClCompile>
-    <ClCompile Include="graphics\platform_gnm\heap_gnm.cpp">
-      <Filter>Source Files\graphics\platform_gnm</Filter>
-    </ClCompile>
-    <ClCompile Include="graphics\platform_gnm\memory_gnm.cpp">
-      <Filter>Source Files\graphics\platform_gnm</Filter>
-    </ClCompile>
-    <ClCompile Include="resource\dllmain.cpp">
-      <Filter>Source Files\Resource</Filter>
-    </ClCompile>
-    <ClCompile Include="graphics\platform_dx11\image_dx11.cpp">
-      <Filter>Source Files\graphics\platform_dx11</Filter>
-    </ClCompile>
-    <ClCompile Include="graphics\platform_gxm\image_gxm.cpp">
-      <Filter>Source Files\graphics\platform_gxm</Filter>
-    </ClCompile>
-    <ClCompile Include="graphics\platform_gxm\texture_util_gxm.cpp">
-      <Filter>Source Files\graphics\platform_gxm</Filter>
-    </ClCompile>
-    <ClCompile Include="sampleutil_common.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="system\orbis\save_data_orbis.cpp">
-      <Filter>Source Files\system\orbis</Filter>
-    </ClCompile>
-    <ClCompile Include="system\psp2\save_data_psp2.cpp">
-      <Filter>Source Files\system\psp2</Filter>
-    </ClCompile>
-    <ClCompile Include="system\win\save_data_win.cpp">
-      <Filter>Source Files\system\win</Filter>
-    </ClCompile>
-    <ClCompile Include="graphics\font.cpp">
-      <Filter>Source Files\graphics</Filter>
-    </ClCompile>
-    <ClCompile Include="util\util.cpp">
-      <Filter>Source Files\util</Filter>
-    </ClCompile>
-    <ClCompile Include="debug\debug_menu_item_group.cpp">
-      <Filter>Source Files\debug</Filter>
-    </ClCompile>
-    <ClCompile Include="graphics\platform_dx11\font_win.cpp">
-      <Filter>Source Files\graphics\platform_dx11</Filter>
-    </ClCompile>
-    <ClCompile Include="graphics\platform_gnm\font_orbis.cpp">
-      <Filter>Source Files\graphics\platform_gnm</Filter>
-    </ClCompile>
-    <ClCompile Include="graphics\platform_gxm\font_psp2.cpp">
-      <Filter>Source Files\graphics\platform_gxm</Filter>
-    </ClCompile>
-    <ClCompile Include="graphics\sprite_effect_2d.cpp">
-      <Filter>Source Files\graphics</Filter>
-    </ClCompile>
-    <ClCompile Include="input\pad_common.cpp">
-      <Filter>Source Files\input</Filter>
-    </ClCompile>
-    <ClCompile Include="input\psp2\pad_psp2.cpp">
-      <Filter>Source Files\input\psp2</Filter>
-    </ClCompile>
-    <ClCompile Include="system\win\user_win.cpp">
-      <Filter>Source Files\system\win</Filter>
-    </ClCompile>
-    <ClCompile Include="system\psp2\user_psp2.cpp">
-      <Filter>Source Files\system\psp2</Filter>
-    </ClCompile>
-    <ClCompile Include="system\orbis\user_orbis.cpp">
-      <Filter>Source Files\system\orbis</Filter>
-    </ClCompile>
-    <ClCompile Include="input\orbis\pad_orbis.cpp">
-      <Filter>Source Files\input\orbis</Filter>
-    </ClCompile>
-    <ClCompile Include="input\psp2\motion_psp2.cpp">
-      <Filter>Source Files\input\psp2</Filter>
-    </ClCompile>
-    <ClCompile Include="input\win\pad_win.cpp">
-      <Filter>Source Files\input\win</Filter>
-    </ClCompile>
-    <ClCompile Include="input\controller_common.cpp">
-      <Filter>Source Files\input</Filter>
-    </ClCompile>
-    <ClCompile Include="audio\audio_data.cpp">
-      <Filter>Source Files\audio</Filter>
-    </ClCompile>
-    <ClCompile Include="util\util_streaming.cpp">
-      <Filter>Source Files\util</Filter>
-    </ClCompile>
-  </ItemGroup>
-  <ItemGroup>
-    <CustomBuild Include="resource\sampleutil_ascii.tga">
-      <Filter>Source Files\Resource</Filter>
-    </CustomBuild>
-    <CustomBuild Include="resource\sampleutil_clear_p.pssl">
-      <Filter>Source Files\Resource\pssl</Filter>
-    </CustomBuild>
-    <CustomBuild Include="resource\sampleutil_sprite2d_v.pssl">
-      <Filter>Source Files\Resource\pssl</Filter>
-    </CustomBuild>
-    <CustomBuild Include="resource\sampleutil_clear_vv.pssl">
-      <Filter>Source Files\Resource\pssl</Filter>
-    </CustomBuild>
-    <CustomBuild Include="resource\sampleutil_collada_skinning_phong_f.pssl">
-      <Filter>Source Files\Resource\pssl</Filter>
-    </CustomBuild>
-    <CustomBuild Include="resource\sampleutil_collada_skinning_phong_v.pssl">
-      <Filter>Source Files\Resource\pssl</Filter>
-    </CustomBuild>
-    <CustomBuild Include="resource\sampleutil_fill2d_f.pssl">
-      <Filter>Source Files\Resource\pssl</Filter>
-    </CustomBuild>
-    <CustomBuild Include="resource\sampleutil_fill2d_v.pssl">
-      <Filter>Source Files\Resource\pssl</Filter>
-    </CustomBuild>
-    <CustomBuild Include="resource\sampleutil_point_sprite2d_f.pssl">
-      <Filter>Source Files\Resource\pssl</Filter>
-    </CustomBuild>
-    <CustomBuild Include="resource\sampleutil_point_sprite2d_v.pssl">
-      <Filter>Source Files\Resource\pssl</Filter>
-    </CustomBuild>
-    <CustomBuild Include="resource\sampleutil_sprite2d_f.pssl">
-      <Filter>Source Files\Resource\pssl</Filter>
-    </CustomBuild>
-    <CustomBuild Include="resource\sampleutil_clear_f.cg">
-      <Filter>Source Files\Resource\cg</Filter>
-    </CustomBuild>
-    <CustomBuild Include="resource\sampleutil_clear_v.cg">
-      <Filter>Source Files\Resource\cg</Filter>
-    </CustomBuild>
-    <CustomBuild Include="resource\sampleutil_collada_skinning_phong_f.cg">
-      <Filter>Source Files\Resource\cg</Filter>
-    </CustomBuild>
-    <CustomBuild Include="resource\sampleutil_collada_skinning_phong_v.cg">
-      <Filter>Source Files\Resource\cg</Filter>
-    </CustomBuild>
-    <CustomBuild Include="resource\sampleutil_fill2d_f.cg">
-      <Filter>Source Files\Resource\cg</Filter>
-    </CustomBuild>
-    <CustomBuild Include="resource\sampleutil_fill2d_v.cg">
-      <Filter>Source Files\Resource\cg</Filter>
-    </CustomBuild>
-    <CustomBuild Include="resource\sampleutil_point_sprite2d_f.cg">
-      <Filter>Source Files\Resource\cg</Filter>
-    </CustomBuild>
-    <CustomBuild Include="resource\sampleutil_point_sprite2d_v.cg">
-      <Filter>Source Files\Resource\cg</Filter>
-    </CustomBuild>
-    <CustomBuild Include="resource\sampleutil_sprite2d_f.cg">
-      <Filter>Source Files\Resource\cg</Filter>
-    </CustomBuild>
-    <CustomBuild Include="resource\sampleutil_sprite2d_v.cg">
-      <Filter>Source Files\Resource\cg</Filter>
-    </CustomBuild>
-    <CustomBuild Include="resource\sampleutil_sprite2d_2_f.cg">
-      <Filter>Source Files\Resource\cg</Filter>
-    </CustomBuild>
-    <CustomBuild Include="resource\sampleutil_sprite2d_2_v.cg">
-      <Filter>Source Files\Resource\cg</Filter>
-    </CustomBuild>
-    <CustomBuild Include="resource\sampleutil_sprite2d_2_f.pssl">
-      <Filter>Source Files\Resource\pssl</Filter>
-    </CustomBuild>
-    <CustomBuild Include="resource\sampleutil_sprite2d_2_v.pssl">
-      <Filter>Source Files\Resource\pssl</Filter>
-    </CustomBuild>
-    <CustomBuild Include="resource\sampleutil_sprite2d_yuy2_f.pssl">
-      <Filter>Source Files\Resource\pssl</Filter>
-    </CustomBuild>
-    <CustomBuild Include="resource\sampleutil_sprite2d_yuy2_v.pssl">
-      <Filter>Source Files\Resource\pssl</Filter>
-    </CustomBuild>
-    <CustomBuild Include="resource\sampleutil_sprite2d_yuy2_f.cg">
-      <Filter>Source Files\Resource\cg</Filter>
-    </CustomBuild>
-    <CustomBuild Include="resource\sampleutil_sprite2d_yuy2_v.cg">
-      <Filter>Source Files\Resource\cg</Filter>
-    </CustomBuild>
-    <CustomBuild Include="resource\sampleutil_fill3d_f.pssl">
-      <Filter>Source Files\Resource\pssl</Filter>
-    </CustomBuild>
-    <CustomBuild Include="resource\sampleutil_fill3d_v.pssl">
-      <Filter>Source Files\Resource\pssl</Filter>
-    </CustomBuild>
-    <CustomBuild Include="resource\sampleutil_fill3d_f.cg">
-      <Filter>Source Files\Resource\cg</Filter>
-    </CustomBuild>
-    <CustomBuild Include="resource\sampleutil_fill3d_v.cg">
-      <Filter>Source Files\Resource\cg</Filter>
-    </CustomBuild>
-    <CustomBuild Include="resource\sampleutil_wireframe_f.pssl">
-      <Filter>Source Files\Resource\pssl</Filter>
-    </CustomBuild>
-    <CustomBuild Include="resource\sampleutil_wireframe_v.pssl">
-      <Filter>Source Files\Resource\pssl</Filter>
-    </CustomBuild>
-    <CustomBuild Include="resource\sampleutil_wireframe_f.cg">
-      <Filter>Source Files\Resource\cg</Filter>
-    </CustomBuild>
-    <CustomBuild Include="resource\sampleutil_wireframe_v.cg">
-      <Filter>Source Files\Resource\cg</Filter>
-    </CustomBuild>
-    <CustomBuild Include="resource\sampleutil_sprite2d_ycbcr_f.pssl">
-      <Filter>Source Files\Resource\pssl</Filter>
-    </CustomBuild>
-    <CustomBuild Include="resource\sampleutil_sprite2d_ycbcr_v.pssl">
-      <Filter>Source Files\Resource\pssl</Filter>
-    </CustomBuild>
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="resource\vsoutput.hs">
-      <Filter>Source Files\Resource</Filter>
-    </None>
-  </ItemGroup>
-  <ItemGroup>
-    <ResourceCompile Include="resource\libSceSampleUtil.rc">
-      <Filter>Source Files\Resource</Filter>
-    </ResourceCompile>
-  </ItemGroup>
-</Project>
\ No newline at end of file
diff --git a/src/third_party/libvpx_gpu/vp9-dec-test/PS4/common/source/sampleutil/libSceSampleUtil.vcxproj.user b/src/third_party/libvpx_gpu/vp9-dec-test/PS4/common/source/sampleutil/libSceSampleUtil.vcxproj.user
deleted file mode 100644
index 695b5c7..0000000
--- a/src/third_party/libvpx_gpu/vp9-dec-test/PS4/common/source/sampleutil/libSceSampleUtil.vcxproj.user
+++ /dev/null
@@ -1,3 +0,0 @@
-﻿<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-</Project>
\ No newline at end of file
diff --git a/src/third_party/libvpx_gpu/vp9-dec-test/PS4/dbg_font/dbg_font.vcxproj b/src/third_party/libvpx_gpu/vp9-dec-test/PS4/dbg_font/dbg_font.vcxproj
deleted file mode 100644
index 68ff2dc..0000000
--- a/src/third_party/libvpx_gpu/vp9-dec-test/PS4/dbg_font/dbg_font.vcxproj
+++ /dev/null
@@ -1,77 +0,0 @@
-﻿<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <ItemGroup Label="ProjectConfigurations">
-    <ProjectConfiguration Include="Debug|ORBIS">
-      <Configuration>Debug</Configuration>
-      <Platform>ORBIS</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Release|ORBIS">
-      <Configuration>Release</Configuration>
-      <Platform>ORBIS</Platform>
-    </ProjectConfiguration>
-  </ItemGroup>
-  <PropertyGroup Label="Globals">
-    <ProjectName>_dbg_font</ProjectName>
-    <ProjectGuid>{43565ad8-688c-4451-a81f-2aba8e957753}</ProjectGuid>
-    <RootNamespace>dkdev</RootNamespace>
-    <Keyword>Win32Proj</Keyword>
-    <GnmProjectType>SampleLib</GnmProjectType>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'" Label="Configuration">
-    <ConfigurationType>StaticLibrary</ConfigurationType>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'" Label="Configuration">
-    <ConfigurationType>StaticLibrary</ConfigurationType>
-  </PropertyGroup>
-  <ImportGroup Label="PropertySheets">
-    <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
-    <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
-    <Import Project="$(SolutionDir)\SceGnm.props" Condition="Exists('$(SolutionDir)\SceGnm.props')" />
-    <Import Project="$(SCE_ORBIS_SDK_DIR)\host_tools\msbuild\SceGnm.props" Condition="!Exists('$(SolutionDir)\SceGnm.props')" />
-  </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'" Label="PropertySheets">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-  </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'" Label="PropertySheets">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-  </ImportGroup>
-  <PropertyGroup Label="UserMacros" />
-  <PropertyGroup>
-    <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
-    <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">libSceDbgFont_debug</TargetName>
-    <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">libSceDbgFont</TargetName>
-  </PropertyGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">
-    <ClCompile>
-      <PreprocessorDefinitions>_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <UseFullPaths>true</UseFullPaths>
-      <ProgramDataBaseFileName>$(OutDir)\$(TargetName)-vc$(PlatformToolsetVersion).pdb</ProgramDataBaseFileName>
-    </ClCompile>
-    <Lib />
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">
-    <ClCompile>
-      <PreprocessorDefinitions>_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <UseFullPaths>true</UseFullPaths>
-      <ProgramDataBaseFileName>$(OutDir)\$(TargetName)-vc$(PlatformToolsetVersion).pdb</ProgramDataBaseFileName>
-    </ClCompile>
-    <Lib />
-  </ItemDefinitionGroup>
-  <ItemGroup>
-    <ClCompile Include="dbg_font.cpp" />
-  </ItemGroup>
-  <ItemGroup>
-    <ClInclude Include="dbg_font.h" />
-  </ItemGroup>
-  <ItemGroup>
-    <Compile_PSSL_To_Header Include="dbg_font_printf_c.pssl" />
-    <Compile_PSSL_To_Header Include="dbg_font_render_c.pssl" />
-    <Compile_PSSL_To_Header Include="dbg_font_render_p.pssl" />
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="dbg_font_render.hs" />
-  </ItemGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
-  <Import Project="$(SolutionDir)\SceGnm.targets" Condition="Exists('$(SolutionDir)\SceGnm.targets')" />
-  <Import Project="$(SCE_ORBIS_SDK_DIR)\host_tools\msbuild\SceGnm.targets" Condition="!Exists('$(SolutionDir)\SceGnm.targets')" />
-</Project>
\ No newline at end of file
diff --git a/src/third_party/libvpx_gpu/vp9-dec-test/PS4/framework/framework.vcxproj b/src/third_party/libvpx_gpu/vp9-dec-test/PS4/framework/framework.vcxproj
deleted file mode 100644
index 27927f1..0000000
--- a/src/third_party/libvpx_gpu/vp9-dec-test/PS4/framework/framework.vcxproj
+++ /dev/null
@@ -1,98 +0,0 @@
-﻿<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <ItemGroup Label="ProjectConfigurations">
-    <ProjectConfiguration Include="Debug|ORBIS">
-      <Configuration>Debug</Configuration>
-      <Platform>ORBIS</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Release|ORBIS">
-      <Configuration>Release</Configuration>
-      <Platform>ORBIS</Platform>
-    </ProjectConfiguration>
-  </ItemGroup>
-  <PropertyGroup Label="Globals">
-    <ProjectName>_framework</ProjectName>
-    <ProjectGuid>{F950CC65-80EF-4B1F-86A3-2B87B3F23C96}</ProjectGuid>
-    <RootNamespace>dkdev</RootNamespace>
-    <Keyword>Win32Proj</Keyword>
-    <GnmProjectType>SampleLib</GnmProjectType>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Platform)'=='ORBIS'" Label="Configuration">
-    <ConfigurationType>StaticLibrary</ConfigurationType>
-  </PropertyGroup>
-  <ImportGroup Label="PropertySheets">
-    <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
-    <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
-    <Import Project="$(SolutionDir)\SceGnm.props" Condition="Exists('$(SolutionDir)\SceGnm.props')" />
-    <Import Project="$(SCE_ORBIS_SDK_DIR)\host_tools\msbuild\SceGnm.props" Condition="!Exists('$(SolutionDir)\SceGnm.props')" />
-  </ImportGroup>
-  <ImportGroup Label="ExtensionSettings" />
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'" Label="PropertySheets">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-  </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'" Label="PropertySheets">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-  </ImportGroup>
-  <PropertyGroup Label="UserMacros" />
-  <PropertyGroup>
-    <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
-    <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">framework_debug</TargetName>
-    <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">framework</TargetName>
-  </PropertyGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">
-    <ClCompile>
-      <PreprocessorDefinitions>_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <UseFullPaths>true</UseFullPaths>
-      <ProgramDataBaseFileName>$(OutDir)\$(TargetName)-vc$(PlatformToolsetVersion).pdb</ProgramDataBaseFileName>
-    </ClCompile>
-    <Lib />
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">
-    <ClCompile>
-      <PreprocessorDefinitions>_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <UseFullPaths>true</UseFullPaths>
-      <ProgramDataBaseFileName>$(OutDir)\$(TargetName)-vc$(PlatformToolsetVersion).pdb</ProgramDataBaseFileName>
-    </ClCompile>
-    <Lib />
-  </ItemDefinitionGroup>
-  <ItemGroup>
-    <ClCompile Include="controller.cpp" />
-    <ClCompile Include="debug_objects.cpp" />
-    <ClCompile Include="eopeventqueue.cpp" />
-    <ClCompile Include="frame.cpp" />
-    <ClCompile Include="framework.cpp" />
-    <ClCompile Include="gnf_loader.cpp" />
-    <ClCompile Include="noise_prep.cpp" />
-    <ClCompile Include="sample_framework.cpp" />
-    <ClCompile Include="sample_framework_menu.cpp" />
-    <ClCompile Include="simple_mesh.cpp" />
-    <ClCompile Include="thread.cpp" />
-  </ItemGroup>
-  <ItemGroup>
-    <CustomBuildStep Include="framework.h" />
-  </ItemGroup>
-  <ItemGroup>
-    <ClInclude Include="configdata.h" />
-    <ClInclude Include="controller.h" />
-    <ClInclude Include="debug_objects.h" />
-    <ClInclude Include="eopeventqueue.h" />
-    <ClInclude Include="frame.h" />
-    <ClInclude Include="framework.h" />
-    <ClInclude Include="gnf_loader.h" />
-    <ClInclude Include="noise_prep.h" />
-    <ClInclude Include="sample_framework.h" />
-    <ClInclude Include="sample_framework_menu.h" />
-    <ClInclude Include="simple_mesh.h" />
-    <ClInclude Include="thread.h" />
-  </ItemGroup>
-  <ItemGroup>
-    <Compile_PSSL_To_Header Include="dbg_font_repair_c.pssl" />
-    <Compile_PSSL_To_Header Include="dbg_font_timer_c.pssl" />
-    <Compile_PSSL_To_Header Include="dbg_font_unsigned_c.pssl" />
-    <Compile_PSSL_To_Header Include="debug_vertex_p.pssl" />
-    <Compile_PSSL_To_Header Include="debug_vertex_vv.pssl" />
-  </ItemGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
-  <Import Project="$(SolutionDir)\SceGnm.targets" Condition="Exists('$(SolutionDir)\SceGnm.targets')" />
-  <Import Project="$(SCE_ORBIS_SDK_DIR)\host_tools\msbuild\SceGnm.targets" Condition="!Exists('$(SolutionDir)\SceGnm.targets')" />
-</Project>
\ No newline at end of file
diff --git a/src/third_party/libvpx_gpu/vp9-dec-test/PS4/toolkit/toolkit.vcxproj b/src/third_party/libvpx_gpu/vp9-dec-test/PS4/toolkit/toolkit.vcxproj
deleted file mode 100644
index b62f72b..0000000
--- a/src/third_party/libvpx_gpu/vp9-dec-test/PS4/toolkit/toolkit.vcxproj
+++ /dev/null
@@ -1,145 +0,0 @@
-﻿<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <ItemGroup Label="ProjectConfigurations">
-    <ProjectConfiguration Include="Debug|ORBIS">
-      <Configuration>Debug</Configuration>
-      <Platform>ORBIS</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Release|ORBIS">
-      <Configuration>Release</Configuration>
-      <Platform>ORBIS</Platform>
-    </ProjectConfiguration>
-  </ItemGroup>
-  <PropertyGroup Label="Globals">
-    <ProjectName>_toolkit</ProjectName>
-    <ProjectGuid>{2F4CCF89-7649-4C7F-8CBF-F976B4FBC2B6}</ProjectGuid>
-    <RootNamespace>dkdev</RootNamespace>
-    <Keyword>Win32Proj</Keyword>
-    <GnmProjectType>SampleLib</GnmProjectType>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'" Label="Configuration">
-    <ConfigurationType>StaticLibrary</ConfigurationType>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'" Label="Configuration">
-    <ConfigurationType>StaticLibrary</ConfigurationType>
-  </PropertyGroup>
-  <ImportGroup Label="PropertySheets">
-    <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
-    <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
-    <Import Project="$(SolutionDir)\SceGnm.props" Condition="Exists('$(SolutionDir)\SceGnm.props')" />
-    <Import Project="$(SCE_ORBIS_SDK_DIR)\host_tools\msbuild\SceGnm.props" Condition="!Exists('$(SolutionDir)\SceGnm.props')" />
-  </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'" Label="PropertySheets">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-  </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'" Label="PropertySheets">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-  </ImportGroup>
-  <PropertyGroup Label="UserMacros" />
-  <PropertyGroup>
-    <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
-    <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">toolkit</TargetName>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">
-    <TargetName>toolkit_debug</TargetName>
-  </PropertyGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">
-    <ClCompile>
-      <PreprocessorDefinitions>_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <UseFullPaths>true</UseFullPaths>
-      <ProgramDataBaseFileName>$(OutDir)\$(TargetName)-vc$(PlatformToolsetVersion).pdb</ProgramDataBaseFileName>
-    </ClCompile>
-    <Lib />
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">
-    <ClCompile>
-      <PreprocessorDefinitions>_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <UseFullPaths>true</UseFullPaths>
-      <ProgramDataBaseFileName>$(OutDir)\$(TargetName)-vc$(PlatformToolsetVersion).pdb</ProgramDataBaseFileName>
-    </ClCompile>
-    <Lib />
-  </ItemDefinitionGroup>
-  <ItemGroup>
-    <ClCompile Include="allocators.cpp" />
-    <ClCompile Include="dataformat_interpreter.cpp" />
-    <ClCompile Include="dataformat_tests.cpp" />
-    <ClCompile Include="deallocator.cpp" />
-    <ClCompile Include="embedded_shader.cpp" />
-    <ClCompile Include="floating_point.cpp" />
-    <ClCompile Include="region_allocator.cpp" />
-    <ClCompile Include="shader_loader.cpp" />
-    <ClCompile Include="stack_allocator.cpp" />
-    <ClCompile Include="toolkit.cpp" />
-  </ItemGroup>
-  <ItemGroup>
-    <ClInclude Include="allocator.h" />
-    <ClInclude Include="allocators.h" />
-    <ClInclude Include="dataformat_interpreter.h" />
-    <ClInclude Include="dataformat_tests.h" />
-    <ClInclude Include="deallocator.h" />
-    <ClInclude Include="embedded_shader.h" />
-    <ClInclude Include="floating_point.h" />
-    <ClInclude Include="geommath\matrix4unaligned.h" />
-    <ClInclude Include="geommath\vector2unaligned.h" />
-    <ClInclude Include="geommath\vector3unaligned.h" />
-    <ClInclude Include="geommath\vector4unaligned.h" />
-    <ClInclude Include="geommath\geommath.h" />
-    <ClInclude Include="memory.h" />
-    <ClInclude Include="region_allocator.h" />
-    <ClInclude Include="shader_common\illum.hs" />
-    <ClInclude Include="shader_common\noise.hs" />
-    <ClInclude Include="shader_common\shader_base.h" />
-    <ClInclude Include="shader_common\vsoutput_common.hs" />
-    <ClInclude Include="shader_loader.h" />
-    <ClInclude Include="stack_allocator.h" />
-    <CustomBuildStep Include="toolkit.h" />
-  </ItemGroup>
-  <ItemGroup>
-    <Compile_PSSL_To_Header Include="shader_common\copytexture2d_p.pssl" />
-    <Compile_PSSL_To_Header Include="shader_common\cs_clearbuffer_c.pssl" />
-    <Compile_PSSL_To_Header Include="shader_common\cs_cleartexture1d_c.pssl" />
-    <Compile_PSSL_To_Header Include="shader_common\cs_cleartexture2d_c.pssl" />
-    <Compile_PSSL_To_Header Include="shader_common\cs_cleartexture3d_c.pssl" />
-    <Compile_PSSL_To_Header Include="shader_common\cs_copybuffer_c.pssl">
-      <FileType>Document</FileType>
-    </Compile_PSSL_To_Header>
-    <Compile_PSSL_To_Header Include="shader_common\cs_copyrawtexture1d_c.pssl">
-      <FileType>Document</FileType>
-    </Compile_PSSL_To_Header>
-    <Compile_PSSL_To_Header Include="shader_common\cs_copyrawtexture2d_c.pssl">
-      <FileType>Document</FileType>
-    </Compile_PSSL_To_Header>
-    <Compile_PSSL_To_Header Include="shader_common\cs_copyrawtexture3d_c.pssl">
-      <FileType>Document</FileType>
-    </Compile_PSSL_To_Header>
-    <Compile_PSSL_To_Header Include="shader_common\cs_copytexture1d_c.pssl">
-      <FileType>Document</FileType>
-    </Compile_PSSL_To_Header>
-    <Compile_PSSL_To_Header Include="shader_common\cs_copytexture2d_c.pssl">
-      <FileType>Document</FileType>
-    </Compile_PSSL_To_Header>
-    <Compile_PSSL_To_Header Include="shader_common\cs_copytexture3d_c.pssl">
-      <FileType>Document</FileType>
-    </Compile_PSSL_To_Header>
-    <Compile_PSSL_To_Header Include="shader_common\copydepth_p.pssl">
-      <FileType>Document</FileType>
-    </Compile_PSSL_To_Header>
-    <PSSL Include="shader_common\pixbg_p.pssl" />
-    <Compile_PSSL_To_Header Include="shader_common\cs_set_uint_c.pssl" />
-    <Compile_PSSL_To_Header Include="shader_common\cs_set_uint_fast_c.pssl" />
-    <Compile_PSSL_To_Header Include="shader_common\cs_test_buffer_read_c.pssl" />
-    <Compile_PSSL_To_Header Include="shader_common\cs_test_texture_read_c.pssl" />
-    <Compile_PSSL_To_Header Include="shader_common\pix_clear_p.pssl">
-      <FileType>Document</FileType>
-    </Compile_PSSL_To_Header>
-    <PSSL Include="shader_common\vexbg_vv.pssl" />
-    <Compile_PSSL_To_Header Include="shader_common\pix_generateMipMaps_3d_p.pssl" />
-    <Compile_PSSL_To_Header Include="shader_common\pix_generateMipMaps_2d_p.pssl" />
-    <Compile_PSSL_To_Header Include="shader_common\vex_clear_vv.pssl">
-      <FileType>Document</FileType>
-    </Compile_PSSL_To_Header>
-  </ItemGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
-  <Import Project="$(SolutionDir)\SceGnm.targets" Condition="Exists('$(SolutionDir)\SceGnm.targets')" />
-  <Import Project="$(SCE_ORBIS_SDK_DIR)\host_tools\msbuild\SceGnm.targets" Condition="!Exists('$(SolutionDir)\SceGnm.targets')" />
-</Project>
\ No newline at end of file
diff --git a/src/third_party/libvpx_gpu/vp9-dec-test/google-tests/build/test-vp9-dec.vcxproj b/src/third_party/libvpx_gpu/vp9-dec-test/google-tests/build/test-vp9-dec.vcxproj
deleted file mode 100644
index f414575..0000000
--- a/src/third_party/libvpx_gpu/vp9-dec-test/google-tests/build/test-vp9-dec.vcxproj
+++ /dev/null
@@ -1,276 +0,0 @@
-﻿<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <ItemGroup Label="ProjectConfigurations">
-    <ProjectConfiguration Include="Debug|ORBIS">
-      <Configuration>Debug</Configuration>
-      <Platform>ORBIS</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Debug|Win32">
-      <Configuration>Debug</Configuration>
-      <Platform>Win32</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Debug|x64">
-      <Configuration>Debug</Configuration>
-      <Platform>x64</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Release|ORBIS">
-      <Configuration>Release</Configuration>
-      <Platform>ORBIS</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Release|Win32">
-      <Configuration>Release</Configuration>
-      <Platform>Win32</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Release|x64">
-      <Configuration>Release</Configuration>
-      <Platform>x64</Platform>
-    </ProjectConfiguration>
-  </ItemGroup>
-  <PropertyGroup Label="Globals">
-    <ProjectGuid>{020D5EB9-D317-46FE-9CEC-557444DCDC6E}</ProjectGuid>
-    <Keyword>Win32Proj</Keyword>
-    <RootNamespace>testvp9dec</RootNamespace>
-    <ProjectName>google-tests</ProjectName>
-  </PropertyGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
-    <ConfigurationType>Application</ConfigurationType>
-    <UseDebugLibraries>true</UseDebugLibraries>
-    <CharacterSet>Unicode</CharacterSet>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'" Label="Configuration">
-    <ConfigurationType>Application</ConfigurationType>
-    <UseDebugLibraries>true</UseDebugLibraries>
-    <CharacterSet>Unicode</CharacterSet>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
-    <ConfigurationType>Application</ConfigurationType>
-    <UseDebugLibraries>true</UseDebugLibraries>
-    <CharacterSet>Unicode</CharacterSet>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
-    <ConfigurationType>Application</ConfigurationType>
-    <UseDebugLibraries>false</UseDebugLibraries>
-    <WholeProgramOptimization>true</WholeProgramOptimization>
-    <CharacterSet>Unicode</CharacterSet>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'" Label="Configuration">
-    <ConfigurationType>Application</ConfigurationType>
-    <UseDebugLibraries>false</UseDebugLibraries>
-    <WholeProgramOptimization>true</WholeProgramOptimization>
-    <CharacterSet>Unicode</CharacterSet>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
-    <ConfigurationType>Application</ConfigurationType>
-    <UseDebugLibraries>false</UseDebugLibraries>
-    <WholeProgramOptimization>true</WholeProgramOptimization>
-    <CharacterSet>Unicode</CharacterSet>
-  </PropertyGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
-  <ImportGroup Label="ExtensionSettings">
-  </ImportGroup>
-  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-  </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'" Label="PropertySheets">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-  </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-  </ImportGroup>
-  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-  </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'" Label="PropertySheets">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-  </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-  </ImportGroup>
-  <PropertyGroup Label="UserMacros" />
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-    <LinkIncremental>true</LinkIncremental>
-    <OutDir>$(SolutionDir)..\bin\msvs10\$(Configuration)\win$(PlatformArchitecture)\</OutDir>
-    <IntDir>$(SolutionDir)..\obj\msvs10\$(ProjectName)\$(Configuration)\win$(PlatformArchitecture)\</IntDir>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">
-    <LinkIncremental>true</LinkIncremental>
-    <OutDir>$(SolutionDir)bin\$(Configuration)\</OutDir>
-    <IntDir>$(SolutionDir)obj\$(ProjectName)\$(Configuration)\</IntDir>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
-    <LinkIncremental>true</LinkIncremental>
-    <OutDir>$(SolutionDir)..\bin\msvs10\$(Configuration)\win$(PlatformArchitecture)\</OutDir>
-    <IntDir>$(SolutionDir)..\obj\msvs10\$(ProjectName)\$(Configuration)\win$(PlatformArchitecture)\</IntDir>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
-    <LinkIncremental>false</LinkIncremental>
-    <OutDir>$(SolutionDir)..\bin\msvs10\$(Configuration)\win$(PlatformArchitecture)\</OutDir>
-    <IntDir>$(SolutionDir)..\obj\msvs10\$(ProjectName)\$(Configuration)\win$(PlatformArchitecture)\</IntDir>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">
-    <LinkIncremental>false</LinkIncremental>
-    <OutDir>$(SolutionDir)bin\$(Configuration)\</OutDir>
-    <IntDir>$(SolutionDir)obj\$(ProjectName)\$(Configuration)\</IntDir>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
-    <LinkIncremental>false</LinkIncremental>
-    <OutDir>$(SolutionDir)..\bin\msvs10\$(Configuration)\win$(PlatformArchitecture)\</OutDir>
-    <IntDir>$(SolutionDir)..\obj\msvs10\$(ProjectName)\$(Configuration)\win$(PlatformArchitecture)\</IntDir>
-  </PropertyGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-    <ClCompile>
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>
-      <WarningLevel>Level3</WarningLevel>
-      <Optimization>Disabled</Optimization>
-      <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\vp9-dec-core\build\build_$(Platform);$(SolutionDir)..\vp9-dec-core;$(SolutionDir)/../../Thirdparty/amd/mcl/1.6/amdmcl/inc</AdditionalIncludeDirectories>
-    </ClCompile>
-    <Link>
-      <SubSystem>Console</SubSystem>
-      <GenerateDebugInformation>true</GenerateDebugInformation>
-      <AdditionalLibraryDirectories>$(SolutionDir)..\lib\msvs10\$(Configuration)\win$(PlatformArchitecture)</AdditionalLibraryDirectories>
-      <AdditionalDependencies>vp9-dec-core$(PlatformArchitecture).lib;%(AdditionalDependencies)</AdditionalDependencies>
-    </Link>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">
-    <ClCompile>
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>
-      <WarningLevel>Level3</WarningLevel>
-      <Optimization>Disabled</Optimization>
-      <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <AdditionalIncludeDirectories>$(SolutionDir)vp9-dec-core\build;$(SolutionDir)vp9-dec-core;$(SolutionDir)/../../Thirdparty/amd/mcl/1.6/amdmcl/inc;../../libwebm</AdditionalIncludeDirectories>
-      <GenerateDebugInformation>true</GenerateDebugInformation>
-      <OptimizationLevel>Level0</OptimizationLevel>
-    </ClCompile>
-    <Link>
-      <SubSystem>Console</SubSystem>
-      <GenerateDebugInformation>true</GenerateDebugInformation>
-      <AdditionalLibraryDirectories>$(SolutionDir)lib\$(Configuration);$(SolutionDir)ORBIS_Debug</AdditionalLibraryDirectories>
-      <AdditionalDependencies>vp9-dec-core$(PlatformArchitecture).a;libSceUserService_stub_weak.a;libScePerf_stub_weak.a;libSceGnmDriver_stub_weak.a;libScePm4Dump.a;libSceGnf.a;libSceShaderBinary.a;libSceGpuAddress.a;libSceGnmx_debug.a;libSceGnm_debug.a;libScePosix_stub_weak.a;libScePad_stub_weak.a;libSceVideoOut_stub_weak.a;%(AdditionalDependencies)</AdditionalDependencies>
-    </Link>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
-    <ClCompile>
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>
-      <WarningLevel>Level3</WarningLevel>
-      <Optimization>Disabled</Optimization>
-      <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\vp9-dec-core\build\build_$(Platform);$(SolutionDir)..\vp9-dec-core;$(SolutionDir)/../../Thirdparty/amd/mcl/1.6/amdmcl/inc</AdditionalIncludeDirectories>
-    </ClCompile>
-    <Link>
-      <SubSystem>Console</SubSystem>
-      <GenerateDebugInformation>true</GenerateDebugInformation>
-      <AdditionalLibraryDirectories>$(SolutionDir)..\lib\msvs10\$(Configuration)\win$(PlatformArchitecture)</AdditionalLibraryDirectories>
-      <AdditionalDependencies>vp9-dec-core$(PlatformArchitecture).lib;%(AdditionalDependencies)</AdditionalDependencies>
-    </Link>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
-    <ClCompile>
-      <WarningLevel>Level3</WarningLevel>
-      <PrecompiledHeader>
-      </PrecompiledHeader>
-      <Optimization>MaxSpeed</Optimization>
-      <FunctionLevelLinking>true</FunctionLevelLinking>
-      <IntrinsicFunctions>true</IntrinsicFunctions>
-      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\vp9-dec-core\build\build_$(Platform);$(SolutionDir)..\vp9-dec-core;$(SolutionDir)/../../Thirdparty/amd/mcl/1.6/amdmcl/inc</AdditionalIncludeDirectories>
-    </ClCompile>
-    <Link>
-      <SubSystem>Console</SubSystem>
-      <GenerateDebugInformation>true</GenerateDebugInformation>
-      <EnableCOMDATFolding>true</EnableCOMDATFolding>
-      <OptimizeReferences>true</OptimizeReferences>
-      <AdditionalLibraryDirectories>$(SolutionDir)..\lib\msvs10\$(Configuration)\win$(PlatformArchitecture)</AdditionalLibraryDirectories>
-      <AdditionalDependencies>vp9-dec-core$(PlatformArchitecture).lib;%(AdditionalDependencies)</AdditionalDependencies>
-    </Link>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">
-    <ClCompile>
-      <WarningLevel>Level3</WarningLevel>
-      <PrecompiledHeader>
-      </PrecompiledHeader>
-      <Optimization>MaxSpeed</Optimization>
-      <FunctionLevelLinking>true</FunctionLevelLinking>
-      <IntrinsicFunctions>true</IntrinsicFunctions>
-      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <AdditionalIncludeDirectories>$(SolutionDir)vp9-dec-core\build;$(SolutionDir)vp9-dec-core;$(SolutionDir)/../../Thirdparty/amd/mcl/1.6/amdmcl/inc;../../libwebm</AdditionalIncludeDirectories>
-      <OptimizationLevel>Level2</OptimizationLevel>
-      <GenerateDebugInformation>true</GenerateDebugInformation>
-    </ClCompile>
-    <Link>
-      <SubSystem>Console</SubSystem>
-      <GenerateDebugInformation>true</GenerateDebugInformation>
-      <EnableCOMDATFolding>true</EnableCOMDATFolding>
-      <OptimizeReferences>true</OptimizeReferences>
-      <AdditionalLibraryDirectories>$(SolutionDir)lib\$(Configuration);$(SolutionDir)ORBIS_Release</AdditionalLibraryDirectories>
-      <AdditionalDependencies>vp9-dec-core$(PlatformArchitecture).a;libSceUserService_stub_weak.a;libScePerf_stub_weak.a;libSceGnmDriver_stub_weak.a;libScePm4Dump.a;libSceGnf.a;libSceShaderBinary.a;libSceGpuAddress.a;libSceGnmx.a;libSceGnm.a;libScePosix_stub_weak.a;libScePad_stub_weak.a;libSceVideoOut_stub_weak.a;%(AdditionalDependencies)</AdditionalDependencies>
-    </Link>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
-    <ClCompile>
-      <WarningLevel>Level3</WarningLevel>
-      <PrecompiledHeader>
-      </PrecompiledHeader>
-      <Optimization>MaxSpeed</Optimization>
-      <FunctionLevelLinking>true</FunctionLevelLinking>
-      <IntrinsicFunctions>true</IntrinsicFunctions>
-      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\vp9-dec-core\build\build_$(Platform);$(SolutionDir)..\vp9-dec-core;$(SolutionDir)/../../Thirdparty/amd/mcl/1.6/amdmcl/inc</AdditionalIncludeDirectories>
-    </ClCompile>
-    <Link>
-      <SubSystem>Console</SubSystem>
-      <GenerateDebugInformation>true</GenerateDebugInformation>
-      <EnableCOMDATFolding>true</EnableCOMDATFolding>
-      <OptimizeReferences>true</OptimizeReferences>
-      <AdditionalLibraryDirectories>$(SolutionDir)..\lib\msvs10\$(Configuration)\win$(PlatformArchitecture)</AdditionalLibraryDirectories>
-      <AdditionalDependencies>vp9-dec-core$(PlatformArchitecture).lib;%(AdditionalDependencies)</AdditionalDependencies>
-    </Link>
-  </ItemDefinitionGroup>
-  <ItemGroup>
-    <None Include="ReadMe.txt" />
-  </ItemGroup>
-  <ItemGroup>
-    <ClInclude Include="..\..\libwebm\mkvparser\mkvparser.h" />
-    <ClInclude Include="..\..\libwebm\mkvparser\mkvreader.h" />
-    <ClInclude Include="..\..\vpxdec\md5_utils.h" />
-    <ClInclude Include="..\..\vpxdec\webmdec.h" />
-    <ClInclude Include="..\gtest\gtest.h" />
-    <ClInclude Include="..\stdafx.h" />
-    <ClInclude Include="..\targetver.h" />
-    <ClInclude Include="..\tests\conformance_files.h" />
-    <ClInclude Include="..\tests\decode_test_driver.h" />
-    <ClInclude Include="..\tests\ivf_video_source.h" />
-    <ClInclude Include="..\tests\md5_helper.h" />
-    <ClInclude Include="..\tests\test_vectors.h" />
-    <ClInclude Include="..\tests\video_source.h" />
-    <ClInclude Include="..\tests\webm_video_source.h" />
-  </ItemGroup>
-  <ItemGroup>
-    <ClCompile Include="..\..\libSimplePlayer\memory_helper.cpp" />
-    <ClCompile Include="..\..\libwebm\mkvparser\mkvparser.cc" />
-    <ClCompile Include="..\..\libwebm\mkvparser\mkvreader.cc" />
-    <ClCompile Include="..\..\vpxdec\md5_utils.c" />
-    <ClCompile Include="..\..\vpxdec\user_malloc.cpp" />
-    <ClCompile Include="..\..\vpxdec\webmdec.cc" />
-    <ClCompile Include="..\gtest\gtest-all.cc" />
-    <ClCompile Include="..\stdafx.cpp" />
-    <ClCompile Include="..\test-vp9-dec.cpp" />
-    <ClCompile Include="..\tests\frame_cb_test.cpp" />
-    <ClCompile Include="..\tests\decode_api_test.cc" />
-    <ClCompile Include="..\tests\decode_test_driver.cc" />
-    <ClCompile Include="..\tests\external_frame_buffer_test.cc" />
-    <ClCompile Include="..\tests\invalid_file_test.cc" />
-    <ClCompile Include="..\tests\test_conformance.cc" />
-    <ClCompile Include="..\tests\test_vectors.cc" />
-    <ClCompile Include="..\tests\test_vector_test.cc" />
-    <ClCompile Include="..\tests\user_priv_test.cc" />
-    <ClCompile Include="..\tests\vp9_decrypt_test.cc" />
-    <ClCompile Include="..\tests\vp9_frame_parallel_test.cc" />
-    <ClCompile Include="..\tests\vp9_skip_loopfilter_test.cc" />
-    <ClCompile Include="..\tests\vp9_thread_test.cc" />
-  </ItemGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
-  <ImportGroup Label="ExtensionTargets">
-  </ImportGroup>
-</Project>
\ No newline at end of file
diff --git a/src/third_party/libvpx_gpu/vp9-dec-test/google-tests/build/test-vp9-dec.vcxproj.filters b/src/third_party/libvpx_gpu/vp9-dec-test/google-tests/build/test-vp9-dec.vcxproj.filters
deleted file mode 100644
index 462392e..0000000
--- a/src/third_party/libvpx_gpu/vp9-dec-test/google-tests/build/test-vp9-dec.vcxproj.filters
+++ /dev/null
@@ -1,138 +0,0 @@
-﻿<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <ItemGroup>
-    <Filter Include="Source Files">
-      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
-      <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
-    </Filter>
-    <Filter Include="Header Files">
-      <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
-      <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
-    </Filter>
-    <Filter Include="Resource Files">
-      <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
-      <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
-    </Filter>
-    <Filter Include="Source Files\gtest">
-      <UniqueIdentifier>{4f095190-995f-4343-a0ac-89cf69fbd8f1}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Source Files\tests">
-      <UniqueIdentifier>{4e2171ea-d54f-478c-b71d-61374f0b6a6a}</UniqueIdentifier>
-    </Filter>
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="ReadMe.txt" />
-  </ItemGroup>
-  <ItemGroup>
-    <ClInclude Include="..\stdafx.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\targetver.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\gtest\gtest.h">
-      <Filter>Source Files\gtest</Filter>
-    </ClInclude>
-    <ClInclude Include="..\tests\decode_test_driver.h">
-      <Filter>Source Files\tests</Filter>
-    </ClInclude>
-    <ClInclude Include="..\tests\md5_helper.h">
-      <Filter>Source Files\tests</Filter>
-    </ClInclude>
-    <ClInclude Include="..\tests\webm_video_source.h">
-      <Filter>Source Files\tests</Filter>
-    </ClInclude>
-    <ClInclude Include="..\tests\test_vectors.h">
-      <Filter>Source Files\tests</Filter>
-    </ClInclude>
-    <ClInclude Include="..\tests\video_source.h">
-      <Filter>Source Files\tests</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\vpxdec\webmdec.h">
-      <Filter>Source Files\tests</Filter>
-    </ClInclude>
-    <ClInclude Include="..\tests\ivf_video_source.h">
-      <Filter>Source Files\tests</Filter>
-    </ClInclude>
-    <ClInclude Include="..\tests\conformance_files.h">
-      <Filter>Source Files\tests</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\vpxdec\md5_utils.h">
-      <Filter>Source Files\tests</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\libwebm\mkvparser\mkvparser.h">
-      <Filter>Source Files\tests</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\libwebm\mkvparser\mkvreader.h">
-      <Filter>Source Files\tests</Filter>
-    </ClInclude>
-  </ItemGroup>
-  <ItemGroup>
-    <ClCompile Include="..\stdafx.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\test-vp9-dec.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\tests\user_priv_test.cc">
-      <Filter>Source Files\tests</Filter>
-    </ClCompile>
-    <ClCompile Include="..\gtest\gtest-all.cc">
-      <Filter>Source Files\gtest</Filter>
-    </ClCompile>
-    <ClCompile Include="..\tests\decode_test_driver.cc">
-      <Filter>Source Files\tests</Filter>
-    </ClCompile>
-    <ClCompile Include="..\tests\invalid_file_test.cc">
-      <Filter>Source Files\tests</Filter>
-    </ClCompile>
-    <ClCompile Include="..\tests\vp9_frame_parallel_test.cc">
-      <Filter>Source Files\tests</Filter>
-    </ClCompile>
-    <ClCompile Include="..\tests\vp9_thread_test.cc">
-      <Filter>Source Files\tests</Filter>
-    </ClCompile>
-    <ClCompile Include="..\tests\test_vector_test.cc">
-      <Filter>Source Files\tests</Filter>
-    </ClCompile>
-    <ClCompile Include="..\tests\test_vectors.cc">
-      <Filter>Source Files\tests</Filter>
-    </ClCompile>
-    <ClCompile Include="..\tests\vp9_skip_loopfilter_test.cc">
-      <Filter>Source Files\tests</Filter>
-    </ClCompile>
-    <ClCompile Include="..\tests\vp9_decrypt_test.cc">
-      <Filter>Source Files\tests</Filter>
-    </ClCompile>
-    <ClCompile Include="..\tests\decode_api_test.cc">
-      <Filter>Source Files\tests</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\vpxdec\user_malloc.cpp">
-      <Filter>Source Files\tests</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\vpxdec\webmdec.cc">
-      <Filter>Source Files\tests</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\vpxdec\md5_utils.c">
-      <Filter>Source Files\tests</Filter>
-    </ClCompile>
-    <ClCompile Include="..\tests\external_frame_buffer_test.cc">
-      <Filter>Source Files\tests</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\libSimplePlayer\memory_helper.cpp">
-      <Filter>Source Files\tests</Filter>
-    </ClCompile>
-    <ClCompile Include="..\tests\frame_cb_test.cpp">
-      <Filter>Source Files\tests</Filter>
-    </ClCompile>
-    <ClCompile Include="..\tests\test_conformance.cc">
-      <Filter>Source Files\tests</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\libwebm\mkvparser\mkvparser.cc">
-      <Filter>Source Files\tests</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\libwebm\mkvparser\mkvreader.cc">
-      <Filter>Source Files\tests</Filter>
-    </ClCompile>
-  </ItemGroup>
-</Project>
\ No newline at end of file
diff --git a/src/third_party/libvpx_gpu/vp9-dec-test/libSimplePlayer/libSimplePlayer.vcxproj b/src/third_party/libvpx_gpu/vp9-dec-test/libSimplePlayer/libSimplePlayer.vcxproj
deleted file mode 100644
index 8284322..0000000
--- a/src/third_party/libvpx_gpu/vp9-dec-test/libSimplePlayer/libSimplePlayer.vcxproj
+++ /dev/null
@@ -1,155 +0,0 @@
-﻿<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <ItemGroup Label="ProjectConfigurations">
-    <ProjectConfiguration Include="Debug|ORBIS">
-      <Configuration>Debug</Configuration>
-      <Platform>ORBIS</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Release|ORBIS">
-      <Configuration>Release</Configuration>
-      <Platform>ORBIS</Platform>
-    </ProjectConfiguration>
-  </ItemGroup>
-  <PropertyGroup Label="Globals">
-    <VCTargetsPath Condition="'$(VCTargetsPath12)' != '' and '$(VSVersion)' == '' and '$(VisualStudioVersion)' == ''">$(VCTargetsPath12)</VCTargetsPath>
-    <ProjectGuid>{901DB192-225E-48D3-8C4D-015A4DE1F6B4}</ProjectGuid>
-    <ProjectName>luxSimplePlayer</ProjectName>
-  </PropertyGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'" Label="Configuration">
-    <ConfigurationType>Application</ConfigurationType>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'" Label="Configuration">
-    <ConfigurationType>Application</ConfigurationType>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
-    <PlatformToolset>v120</PlatformToolset>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
-    <PlatformToolset>v120</PlatformToolset>
-  </PropertyGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
-  <PropertyGroup Condition="'$(DebuggerFlavor)'=='ORBISDebugger'" Label="OverrideDebuggerDefaults">
-    <!--LocalDebuggerCommand>$(TargetPath)</LocalDebuggerCommand-->
-    <!--LocalDebuggerCommandArguments></LocalDebuggerCommandArguments-->
-    <!--LocalDebuggerTarget></LocalDebuggerTarget-->
-    <!--LocalDebuggerWorkingDirectory>$(ProjectDir)</LocalDebuggerWorkingDirectory-->
-    <!--LocalRunCommandLine></LocalRunCommandLine-->
-  </PropertyGroup>
-  <ImportGroup Label="ExtensionSettings">
-    <Import Project="$(VCTargetsPath)\BuildCustomizations\OrbisWavePsslc.props" />
-    <Import Project="$(VCTargetsPath)\BuildCustomizations\SCU.props" />
-  </ImportGroup>
-  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-  </ImportGroup>
-  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-  </ImportGroup>
-  <PropertyGroup Label="UserMacros" />
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">
-    <OutDir>$(SolutionDir)bin\$(Configuration)\</OutDir>
-    <IntDir>$(SolutionDir)obj\$(ProjectName)\$(Configuration)\</IntDir>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">
-    <OutDir>$(SolutionDir)bin\$(Configuration)\</OutDir>
-    <IntDir>$(SolutionDir)obj\$(ProjectName)\$(Configuration)\</IntDir>
-  </PropertyGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">
-    <ClCompile>
-      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <GenerateDebugInformation>true</GenerateDebugInformation>
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>
-      <AdditionalIncludeDirectories>../PS4/;../PS4/common/include;../../vp9-dec-core;../../vp9-dec-core/build;../libwebm;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-    </ClCompile>
-    <Link>
-      <AdditionalDependencies>-lScePosix_stub_weak;-lSceVideodec_stub_weak;libScePm4Dump.a;vp9-dec-core$(PlatformArchitecture).a;libSceGnm.a;libSceGnmx.a;libSceVideoOut_stub_weak.a;libSceGpuAddress.a;libScePad_stub_weak.a;libSceGnmDriver_stub_weak.a;libSceGnf.a;libSceShaderBinary.a</AdditionalDependencies>
-      <AdditionalLibraryDirectories>$(SolutionDir)lib\$(Configuration)</AdditionalLibraryDirectories>
-    </Link>
-    <OrbisWavePsslc>
-      <OutputFileName>$(ProjectDir)%(FileName).sb</OutputFileName>
-    </OrbisWavePsslc>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">
-    <ClCompile>
-      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <OptimizationLevel>Levels</OptimizationLevel>
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>
-      <AdditionalIncludeDirectories>../PS4/;../PS4/common/include;../../vp9-dec-core;../../vp9-dec-core/build;../libwebm;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <GenerateDebugInformation>true</GenerateDebugInformation>
-    </ClCompile>
-    <Link>
-      <AdditionalDependencies>-lScePosix_stub_weak;-lSceVideodec_stub_weak;libScePm4Dump.a;vp9-dec-core$(PlatformArchitecture).a;libSceGnm.a;libSceGnmx.a;libSceVideoOut_stub_weak.a;libSceGpuAddress.a;libScePad_stub_weak.a;libSceGnmDriver_stub_weak.a;libSceGnf.a;libSceShaderBinary.a</AdditionalDependencies>
-      <AdditionalLibraryDirectories>$(SolutionDir)lib\$(Configuration)</AdditionalLibraryDirectories>
-    </Link>
-  </ItemDefinitionGroup>
-  <ItemGroup>
-    <ClCompile Include="..\..\vp9-dec-core\vp9\decoder\vp9lux_linear_allocator.cpp" />
-    <ClCompile Include="..\..\vp9-dec-core\vp9\decoder\vp9lux_thread.c" />
-    <ClCompile Include="..\libwebm\common\hdr_util.cc" />
-    <ClCompile Include="..\libwebm\mkvmuxer\mkvmuxer.cc" />
-    <ClCompile Include="..\libwebm\mkvmuxer\mkvmuxerutil.cc" />
-    <ClCompile Include="..\libwebm\mkvmuxer\mkvwriter.cc" />
-    <ClCompile Include="..\libwebm\mkvparser\mkvparser.cc" />
-    <ClCompile Include="..\libwebm\mkvparser\mkvreader.cc" />
-    <ClCompile Include="..\vpxdec\md5_utils.c" />
-    <ClCompile Include="..\vpxdec\tools_common.c" />
-    <ClCompile Include="..\vpxdec\user_malloc.cpp" />
-    <ClCompile Include="..\vpxdec\webmdec.cc" />
-    <ClCompile Include="display.cpp" />
-    <ClCompile Include="main.cpp" />
-    <ClCompile Include="memory_helper.cpp" />
-    <ClCompile Include="stream_metadata.cpp" />
-  </ItemGroup>
-  <ItemGroup>
-    <ClInclude Include="..\..\vp9-dec-core\vp9\decoder\vp9lux_linear_allocator.h" />
-    <ClInclude Include="..\..\vp9-dec-core\vp9\decoder\vp9lux_thread.h" />
-    <ClInclude Include="..\libwebm\common\hdr_util.h" />
-    <ClInclude Include="..\libwebm\common\webmids.h" />
-    <ClInclude Include="..\libwebm\mkvmuxer\mkvmuxer.h" />
-    <ClInclude Include="..\libwebm\mkvmuxer\mkvmuxertypes.h" />
-    <ClInclude Include="..\libwebm\mkvmuxer\mkvmuxerutil.h" />
-    <ClInclude Include="..\libwebm\mkvmuxer\mkvwriter.h" />
-    <ClInclude Include="..\libwebm\mkvparser\mkvparser.h" />
-    <ClInclude Include="..\libwebm\mkvparser\mkvreader.h" />
-    <ClInclude Include="..\vpxdec\md5_utils.h" />
-    <ClInclude Include="..\vpxdec\tools_common.h" />
-    <ClInclude Include="..\vpxdec\webmdec.h" />
-    <ClInclude Include="display.h" />
-    <ClInclude Include="ivf_video_source.h" />
-    <ClInclude Include="memory_helper.h" />
-    <ClInclude Include="stream_metadata.h" />
-    <ClInclude Include="video_source.h" />
-    <ClInclude Include="webm_video_source.h" />
-  </ItemGroup>
-  <ItemGroup>
-    <OrbisWavePsslc Include="shader_CSC_p.pssl" />
-    <OrbisWavePsslc Include="shader_vv.pssl">
-      <FileType>Document</FileType>
-      <OutputFileName Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">$(ProjectDir)%(FileName).sb</OutputFileName>
-    </OrbisWavePsslc>
-  </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="..\PS4\common\source\sampleutil\libSceSampleUtil.vcxproj">
-      <Project>{30a1b994-c2c6-485f-911b-fb4674366da8}</Project>
-    </ProjectReference>
-    <ProjectReference Include="..\PS4\dbg_font\dbg_font.vcxproj">
-      <Project>{43565ad8-688c-4451-a81f-2aba8e957753}</Project>
-    </ProjectReference>
-    <ProjectReference Include="..\PS4\framework\framework.vcxproj">
-      <Project>{f950cc65-80ef-4b1f-86a3-2b87b3f23c96}</Project>
-    </ProjectReference>
-    <ProjectReference Include="..\PS4\toolkit\toolkit.vcxproj">
-      <Project>{2f4ccf89-7649-4c7f-8cbf-f976b4fbc2b6}</Project>
-    </ProjectReference>
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="helper_functions.hs" />
-  </ItemGroup>
-  <Import Condition="'$(ConfigurationType)' == 'Makefile' and Exists('$(VCTargetsPath)\Platforms\$(Platform)\SCE.Makefile.$(Platform).targets')" Project="$(VCTargetsPath)\Platforms\$(Platform)\SCE.Makefile.$(Platform).targets" />
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
-  <ImportGroup Label="ExtensionTargets">
-    <Import Project="$(VCTargetsPath)\BuildCustomizations\OrbisWavePsslc.targets" />
-    <Import Project="$(VCTargetsPath)\BuildCustomizations\SCU.targets" />
-  </ImportGroup>
-</Project>
\ No newline at end of file
diff --git a/src/third_party/libvpx_gpu/vp9-dec-test/libSimplePlayer/libSimplePlayer.vcxproj.filters b/src/third_party/libvpx_gpu/vp9-dec-test/libSimplePlayer/libSimplePlayer.vcxproj.filters
deleted file mode 100644
index 074c689..0000000
--- a/src/third_party/libvpx_gpu/vp9-dec-test/libSimplePlayer/libSimplePlayer.vcxproj.filters
+++ /dev/null
@@ -1,131 +0,0 @@
-﻿<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <ItemGroup>
-    <Filter Include="Source Files">
-      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
-      <Extensions>cpp;c;cxx;cc;s;asm</Extensions>
-    </Filter>
-    <Filter Include="Header Files">
-      <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
-      <Extensions>h;hpp</Extensions>
-    </Filter>
-  </ItemGroup>
-  <ItemGroup>
-    <ClCompile Include="display.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="main.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\vpxdec\webmdec.cc">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\vpxdec\user_malloc.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\vpxdec\tools_common.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\vpxdec\md5_utils.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\vp9-dec-core\vp9\decoder\vp9lux_linear_allocator.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\vp9-dec-core\vp9\decoder\vp9lux_thread.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="memory_helper.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\libwebm\mkvparser\mkvparser.cc">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\libwebm\mkvparser\mkvreader.cc">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\libwebm\common\hdr_util.cc">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\libwebm\mkvmuxer\mkvmuxer.cc">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\libwebm\mkvmuxer\mkvmuxerutil.cc">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\libwebm\mkvmuxer\mkvwriter.cc">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="stream_metadata.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-  </ItemGroup>
-  <ItemGroup>
-    <ClInclude Include="display.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="video_source.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="webm_video_source.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="ivf_video_source.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\vpxdec\webmdec.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\vpxdec\tools_common.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\vpxdec\md5_utils.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\vp9-dec-core\vp9\decoder\vp9lux_linear_allocator.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\vp9-dec-core\vp9\decoder\vp9lux_thread.h">
-      <Filter>Source Files</Filter>
-    </ClInclude>
-    <ClInclude Include="memory_helper.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\libwebm\common\hdr_util.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\libwebm\common\webmids.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\libwebm\mkvmuxer\mkvmuxer.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\libwebm\mkvmuxer\mkvmuxertypes.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\libwebm\mkvmuxer\mkvmuxerutil.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\libwebm\mkvmuxer\mkvwriter.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\libwebm\mkvparser\mkvparser.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\libwebm\mkvparser\mkvreader.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="stream_metadata.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-  </ItemGroup>
-  <ItemGroup>
-    <OrbisWavePsslc Include="shader_vv.pssl" />
-    <OrbisWavePsslc Include="shader_CSC_p.pssl" />
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="helper_functions.hs">
-      <Filter>Source Files</Filter>
-    </None>
-  </ItemGroup>
-</Project>
\ No newline at end of file
diff --git a/src/third_party/libvpx_gpu/vp9-dec-test/vpxdec/vpxdec.vcxproj b/src/third_party/libvpx_gpu/vp9-dec-test/vpxdec/vpxdec.vcxproj
deleted file mode 100644
index bbe42aa..0000000
--- a/src/third_party/libvpx_gpu/vp9-dec-test/vpxdec/vpxdec.vcxproj
+++ /dev/null
@@ -1,308 +0,0 @@
-﻿<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <ItemGroup Label="ProjectConfigurations">
-    <ProjectConfiguration Include="Debug|ORBIS">
-      <Configuration>Debug</Configuration>
-      <Platform>ORBIS</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Debug|Win32">
-      <Configuration>Debug</Configuration>
-      <Platform>Win32</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Debug|x64">
-      <Configuration>Debug</Configuration>
-      <Platform>x64</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Release|ORBIS">
-      <Configuration>Release</Configuration>
-      <Platform>ORBIS</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Release|Win32">
-      <Configuration>Release</Configuration>
-      <Platform>Win32</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Release|x64">
-      <Configuration>Release</Configuration>
-      <Platform>x64</Platform>
-    </ProjectConfiguration>
-  </ItemGroup>
-  <PropertyGroup Label="Globals">
-    <ProjectGuid>{427CA27F-0F97-4791-912D-E2499DCAE406}</ProjectGuid>
-    <Keyword>Win32Proj</Keyword>
-    <RootNamespace>vpxdec</RootNamespace>
-  </PropertyGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
-    <ConfigurationType>Application</ConfigurationType>
-    <UseDebugLibraries>true</UseDebugLibraries>
-    <CharacterSet>Unicode</CharacterSet>
-    <PlatformToolset>v120</PlatformToolset>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
-    <ConfigurationType>Application</ConfigurationType>
-    <UseDebugLibraries>true</UseDebugLibraries>
-    <CharacterSet>Unicode</CharacterSet>
-    <PlatformToolset>v120</PlatformToolset>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'" Label="Configuration">
-    <ConfigurationType>Application</ConfigurationType>
-    <UseDebugLibraries>true</UseDebugLibraries>
-    <CharacterSet>Unicode</CharacterSet>
-    <PlatformToolset>Clang</PlatformToolset>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
-    <ConfigurationType>Application</ConfigurationType>
-    <UseDebugLibraries>false</UseDebugLibraries>
-    <WholeProgramOptimization>true</WholeProgramOptimization>
-    <CharacterSet>Unicode</CharacterSet>
-    <PlatformToolset>v120</PlatformToolset>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
-    <ConfigurationType>Application</ConfigurationType>
-    <UseDebugLibraries>false</UseDebugLibraries>
-    <WholeProgramOptimization>true</WholeProgramOptimization>
-    <CharacterSet>Unicode</CharacterSet>
-    <PlatformToolset>v120</PlatformToolset>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'" Label="Configuration">
-    <ConfigurationType>Application</ConfigurationType>
-    <UseDebugLibraries>false</UseDebugLibraries>
-    <WholeProgramOptimization>true</WholeProgramOptimization>
-    <CharacterSet>Unicode</CharacterSet>
-    <PlatformToolset>v120</PlatformToolset>
-  </PropertyGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
-  <ImportGroup Label="ExtensionSettings" />
-  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-  </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-  </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'" Label="PropertySheets">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-  </ImportGroup>
-  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-  </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-  </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'" Label="PropertySheets">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-  </ImportGroup>
-  <PropertyGroup Label="UserMacros" />
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-    <LinkIncremental>true</LinkIncremental>
-    <OutDir>$(SolutionDir)..\bin\msvs10\$(Configuration)\win$(PlatformArchitecture)\</OutDir>
-    <IntDir>$(SolutionDir)..\obj\msvs10\$(ProjectName)\$(Configuration)\win$(PlatformArchitecture)\</IntDir>
-    <IncludePath>$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSdkDir)include;$(FrameworkSDKDir)\include;$(ProgramFiles)\Visual Leak Detector\include</IncludePath>
-    <LibraryPath>$(VCInstallDir)lib;$(VCInstallDir)atlmfc\lib;$(WindowsSdkDir)lib;$(FrameworkSDKDir)\lib;$(ProgramFiles)\Visual Leak Detector\lib\Win32</LibraryPath>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
-    <LinkIncremental>true</LinkIncremental>
-    <OutDir>$(SolutionDir)..\bin\msvs10\$(Configuration)\win$(PlatformArchitecture)\</OutDir>
-    <IntDir>$(SolutionDir)..\obj\msvs10\$(ProjectName)\$(Configuration)\win$(PlatformArchitecture)\</IntDir>
-    <LibraryPath>$(DXSDK_DIR)lib\x64;$(LibraryPath)</LibraryPath>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">
-    <LibraryPath>$(SCE_ORBIS_SDK_DIR)\target\lib;$(LibraryPath)</LibraryPath>
-    <LinkIncremental>true</LinkIncremental>
-    <GnmUseGnm>true</GnmUseGnm>
-    <GnmUseGnmx>true</GnmUseGnmx>
-    <GnmUseAddressLibrary>true</GnmUseAddressLibrary>
-    <GnmUseLibShaderBinary>true</GnmUseLibShaderBinary>
-    <GnmUseGNF>true</GnmUseGNF>
-    <GnmUseTextureTool>false</GnmUseTextureTool>
-    <GnmUsePM4Dump>true</GnmUsePM4Dump>
-    <GnmUseSampleCommon>false</GnmUseSampleCommon>
-    <GnmProjectType>Sample</GnmProjectType>
-    <OutDir>$(SolutionDir)bin\$(Configuration)\</OutDir>
-    <IntDir>$(SolutionDir)obj\$(ProjectName)\$(Configuration)\</IntDir>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
-    <LinkIncremental>false</LinkIncremental>
-    <OutDir>$(SolutionDir)..\bin\msvs10\$(Configuration)\win$(PlatformArchitecture)\</OutDir>
-    <IntDir>$(SolutionDir)..\obj\msvs10\$(ProjectName)\$(Configuration)\win$(PlatformArchitecture)\</IntDir>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
-    <LinkIncremental>false</LinkIncremental>
-    <OutDir>$(SolutionDir)..\bin\msvs10\$(Configuration)\win$(PlatformArchitecture)\</OutDir>
-    <IntDir>$(SolutionDir)..\obj\msvs10\$(ProjectName)\$(Configuration)\win$(PlatformArchitecture)\</IntDir>
-    <LibraryPath>$(DXSDK_DIR)lib\x64;$(LibraryPath)</LibraryPath>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">
-    <LibraryPath>$(DXSDK_DIR)lib\x64;$(LibraryPath)</LibraryPath>
-    <LinkIncremental>false</LinkIncremental>
-    <OutDir>$(SolutionDir)bin\$(Configuration)\</OutDir>
-    <IntDir>$(SolutionDir)obj\$(ProjectName)\$(Configuration)\</IntDir>
-  </PropertyGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-    <ClCompile>
-      <PrecompiledHeader>
-      </PrecompiledHeader>
-      <WarningLevel>Level3</WarningLevel>
-      <Optimization>Disabled</Optimization>
-      <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\..\Thirdparty\VpxThirdParty\libyuv\include\libyuv;$(SolutionDir)..\..\dec-cores\vp9-dec-core\build;$(SolutionDir)..\..\dec-cores\vp9-dec-core;$(SolutionDir)..\..\dec-cores\vp9-dec-core\build\build_$(Platform);$(SolutionDir)..\..\Thirdparty\VpxThirdParty\libyuv\include;$(SolutionDir)/../../Thirdparty/amd/mcl/1.6/amdmcl/inc</AdditionalIncludeDirectories>
-      <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
-    </ClCompile>
-    <Link>
-      <SubSystem>Console</SubSystem>
-      <GenerateDebugInformation>true</GenerateDebugInformation>
-      <AdditionalLibraryDirectories>$(SolutionDir)..\lib\msvs10\$(Configuration)\win$(PlatformArchitecture)</AdditionalLibraryDirectories>
-      <AdditionalDependencies>vp9-dec-core$(PlatformArchitecture).lib</AdditionalDependencies>
-    </Link>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
-    <ClCompile>
-      <PrecompiledHeader>
-      </PrecompiledHeader>
-      <WarningLevel>Level3</WarningLevel>
-      <Optimization>Disabled</Optimization>
-      <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\..\Thirdparty\VpxThirdParty\libyuv\include\libyuv;$(SolutionDir)..\..\dec-cores\vp9-dec-core\build;$(SolutionDir)..\..\dec-cores\vp9-dec-core;$(SolutionDir)..\..\dec-cores\vp9-dec-core\build\build_$(Platform);$(SolutionDir)..\..\Thirdparty\VpxThirdParty\libyuv\include;$(SolutionDir)/../../Thirdparty/amd/mcl/1.6/amdmcl/inc</AdditionalIncludeDirectories>
-      <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
-    </ClCompile>
-    <Link>
-      <SubSystem>Console</SubSystem>
-      <GenerateDebugInformation>true</GenerateDebugInformation>
-      <AdditionalLibraryDirectories>$(SolutionDir)..\lib\msvs10\$(Configuration)\win$(PlatformArchitecture)</AdditionalLibraryDirectories>
-      <AdditionalDependencies>vp9-dec-core$(PlatformArchitecture).lib;D3D11.lib;d3dcompiler.lib</AdditionalDependencies>
-      <IgnoreSpecificDefaultLibraries>
-      </IgnoreSpecificDefaultLibraries>
-    </Link>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">
-    <ClCompile>
-      <PrecompiledHeader>
-      </PrecompiledHeader>
-      <WarningLevel>Level3</WarningLevel>
-      <Optimization>Disabled</Optimization>
-      <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\Thirdparty\VpxThirdParty\libyuv\include\libyuv;$(SolutionDir)vp9-dec-core\build;$(SolutionDir)vp9-dec-core;$(SolutionDir)vp9-dec-core\build\ORBIS_Debug;$(SolutionDir)..\Thirdparty\VpxThirdParty\libyuv\include;$(SolutionDir)../Thirdparty/amd/mcl/1.6/amdmcl/inc;../libwebm</AdditionalIncludeDirectories>
-      <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
-      <GenerateDebugInformation>true</GenerateDebugInformation>
-    </ClCompile>
-    <Link>
-      <SubSystem>Console</SubSystem>
-      <GenerateDebugInformation>true</GenerateDebugInformation>
-      <AdditionalLibraryDirectories>$(SolutionDir)lib\$(Configuration);$(SolutionDir)ORBIS_Debug</AdditionalLibraryDirectories>
-      <AdditionalDependencies>vp9-dec-core$(PlatformArchitecture).a;libSceUserService_stub_weak.a;libScePerf_stub_weak.a;libSceGnmDriver_stub_weak.a;libScePm4Dump.a;libSceGnf.a;libSceShaderBinary.a;libSceGpuAddress.a;libSceGnmx_debug.a;libSceGnm_debug.a;libScePosix_stub_weak.a;libScePad_stub_weak.a;libSceVideoOut_stub_weak.a;%(AdditionalDependencies)</AdditionalDependencies>
-      <IgnoreSpecificDefaultLibraries>
-      </IgnoreSpecificDefaultLibraries>
-    </Link>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
-    <ClCompile>
-      <WarningLevel>Level3</WarningLevel>
-      <PrecompiledHeader>
-      </PrecompiledHeader>
-      <Optimization>MaxSpeed</Optimization>
-      <FunctionLevelLinking>true</FunctionLevelLinking>
-      <IntrinsicFunctions>true</IntrinsicFunctions>
-      <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\..\Thirdparty\VpxThirdParty\libyuv\include\libyuv;$(SolutionDir)..\..\dec-cores\vp9-dec-core\build;$(SolutionDir)..\..\dec-cores\vp9-dec-core;$(SolutionDir)..\..\dec-cores\vp9-dec-core\build\build_$(Platform);$(SolutionDir)..\..\Thirdparty\VpxThirdParty\libyuv\include;$(SolutionDir)/../../Thirdparty/amd/mcl/1.6/amdmcl/inc</AdditionalIncludeDirectories>
-    </ClCompile>
-    <Link>
-      <SubSystem>Console</SubSystem>
-      <GenerateDebugInformation>true</GenerateDebugInformation>
-      <EnableCOMDATFolding>true</EnableCOMDATFolding>
-      <OptimizeReferences>true</OptimizeReferences>
-      <AdditionalDependencies>vp9-dec-core$(PlatformArchitecture).lib</AdditionalDependencies>
-      <AdditionalLibraryDirectories>$(SolutionDir)..\lib\msvs10\$(Configuration)\win$(PlatformArchitecture)</AdditionalLibraryDirectories>
-    </Link>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
-    <ClCompile>
-      <WarningLevel>Level3</WarningLevel>
-      <PrecompiledHeader>
-      </PrecompiledHeader>
-      <Optimization>MaxSpeed</Optimization>
-      <FunctionLevelLinking>true</FunctionLevelLinking>
-      <IntrinsicFunctions>true</IntrinsicFunctions>
-      <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\..\dec-cores\vp9-dec-core\build;$(SolutionDir)..\..\dec-cores\vp9-dec-core;$(SolutionDir)..\..\dec-cores\vp9-dec-core\build\build_$(Platform);$(SolutionDir)/../../Thirdparty/amd/mcl/1.6/amdmcl/inc</AdditionalIncludeDirectories>
-      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
-    </ClCompile>
-    <Link>
-      <SubSystem>Console</SubSystem>
-      <GenerateDebugInformation>true</GenerateDebugInformation>
-      <EnableCOMDATFolding>true</EnableCOMDATFolding>
-      <OptimizeReferences>true</OptimizeReferences>
-      <AdditionalDependencies>vp9-dec-core$(PlatformArchitecture).lib;D3D11.lib;d3dcompiler.lib</AdditionalDependencies>
-      <AdditionalLibraryDirectories>$(SolutionDir)..\lib\msvs10\$(Configuration)\win$(PlatformArchitecture)</AdditionalLibraryDirectories>
-      <IgnoreSpecificDefaultLibraries>
-      </IgnoreSpecificDefaultLibraries>
-    </Link>
-    <PostBuildEvent>
-      <Command>
-      </Command>
-    </PostBuildEvent>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">
-    <ClCompile>
-      <WarningLevel>Level3</WarningLevel>
-      <PrecompiledHeader>
-      </PrecompiledHeader>
-      <Optimization>MaxSpeed</Optimization>
-      <FunctionLevelLinking>true</FunctionLevelLinking>
-      <IntrinsicFunctions>true</IntrinsicFunctions>
-      <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\Thirdparty\VpxThirdParty\libyuv\include\libyuv;$(SolutionDir)vp9-dec-core\build;$(SolutionDir)vp9-dec-core;$(SolutionDir)vp9-dec-core\build\ORBIS_Release;$(SolutionDir)..\Thirdparty\VpxThirdParty\libyuv\include;$(SolutionDir)../Thirdparty/amd/mcl/1.6/amdmcl/inc;../libwebm</AdditionalIncludeDirectories>
-      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
-      <OptimizationLevel>Levels</OptimizationLevel>
-      <LinkTimeOptimization>true</LinkTimeOptimization>
-      <NoStrictAliasing>false</NoStrictAliasing>
-    </ClCompile>
-    <Link>
-      <SubSystem>Console</SubSystem>
-      <GenerateDebugInformation>true</GenerateDebugInformation>
-      <EnableCOMDATFolding>true</EnableCOMDATFolding>
-      <OptimizeReferences>true</OptimizeReferences>
-      <AdditionalDependencies>vp9-dec-core$(PlatformArchitecture).a;libSceUserService_stub_weak.a;libScePerf_stub_weak.a;libSceGnmDriver_stub_weak.a;libScePm4Dump.a;libSceGnf.a;libSceShaderBinary.a;libSceGpuAddress.a;libSceGnmx_debug.a;libSceGnm_debug.a;libScePosix_stub_weak.a;libScePad_stub_weak.a;libSceVideoOut_stub_weak.a;%(AdditionalDependencies)</AdditionalDependencies>
-      <AdditionalLibraryDirectories>$(SolutionDir)lib\$(Configuration);</AdditionalLibraryDirectories>
-      <IgnoreSpecificDefaultLibraries>
-      </IgnoreSpecificDefaultLibraries>
-    </Link>
-    <PostBuildEvent>
-      <Command>
-      </Command>
-    </PostBuildEvent>
-  </ItemDefinitionGroup>
-  <ItemGroup>
-    <None Include="ReadMe.txt" />
-  </ItemGroup>
-  <ItemGroup>
-    <ClInclude Include="..\..\vp9-dec-core\vpx_mem\sce_mem.h" />
-    <ClInclude Include="..\libwebm\mkvparser\mkvparser.h" />
-    <ClInclude Include="..\libwebm\mkvparser\mkvreader.h" />
-    <ClInclude Include="args.h" />
-    <ClInclude Include="ivfdec.h" />
-    <ClInclude Include="md5_utils.h" />
-    <ClInclude Include="stdafx.h">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">false</ExcludedFromBuild>
-    </ClInclude>
-    <ClInclude Include="targetver.h">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">true</ExcludedFromBuild>
-    </ClInclude>
-    <ClInclude Include="webmdec.h" />
-    <ClInclude Include="y4menc.h" />
-  </ItemGroup>
-  <ItemGroup>
-    <ClCompile Include="..\..\vp9-dec-core\vpx_mem\vpx_mem.c" />
-    <ClCompile Include="..\libwebm\mkvparser\mkvparser.cc" />
-    <ClCompile Include="..\libwebm\mkvparser\mkvreader.cc" />
-    <ClCompile Include="args.c" />
-    <ClCompile Include="ivfdec.c" />
-    <ClCompile Include="md5_utils.c" />
-    <ClCompile Include="stdafx.cpp" />
-    <ClCompile Include="tools_common.c" />
-    <ClCompile Include="user_malloc.cpp" />
-    <ClCompile Include="vpxdec.c" />
-    <ClCompile Include="webmdec.cc" />
-    <ClCompile Include="y4menc.c" />
-  </ItemGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
-  <ImportGroup Label="ExtensionTargets" />
-</Project>
\ No newline at end of file
diff --git a/src/third_party/libvpx_gpu/vp9-dec-test/vpxdec/vpxdec.vcxproj.filters b/src/third_party/libvpx_gpu/vp9-dec-test/vpxdec/vpxdec.vcxproj.filters
deleted file mode 100644
index f670f6f..0000000
--- a/src/third_party/libvpx_gpu/vp9-dec-test/vpxdec/vpxdec.vcxproj.filters
+++ /dev/null
@@ -1,90 +0,0 @@
-﻿<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <ItemGroup>
-    <Filter Include="Source Files">
-      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
-      <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
-    </Filter>
-    <Filter Include="Header Files">
-      <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
-      <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
-    </Filter>
-    <Filter Include="Resource Files">
-      <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
-      <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
-    </Filter>
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="ReadMe.txt" />
-  </ItemGroup>
-  <ItemGroup>
-    <ClInclude Include="stdafx.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="targetver.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="args.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="md5_utils.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="y4menc.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="webmdec.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="ivfdec.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\vp9-dec-core\vpx_mem\sce_mem.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\libwebm\mkvparser\mkvparser.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\libwebm\mkvparser\mkvreader.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-  </ItemGroup>
-  <ItemGroup>
-    <ClCompile Include="stdafx.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="vpxdec.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="tools_common.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="args.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="md5_utils.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="y4menc.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="webmdec.cc">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="ivfdec.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="user_malloc.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\vp9-dec-core\vpx_mem\vpx_mem.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\libwebm\mkvparser\mkvparser.cc">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\libwebm\mkvparser\mkvreader.cc">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-  </ItemGroup>
-</Project>
\ No newline at end of file
diff --git a/src/third_party/libvpx_gpu/vp9decoder.sln b/src/third_party/libvpx_gpu/vp9decoder.sln
deleted file mode 100644
index 87ac9f9..0000000
--- a/src/third_party/libvpx_gpu/vp9decoder.sln
+++ /dev/null
@@ -1,97 +0,0 @@
-﻿
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 2013
-VisualStudioVersion = 12.0.40629.0
-MinimumVisualStudioVersion = 10.0.40219.1
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vp9-dec-core", "vp9-dec-core\build\vpx-dec-core.vcxproj", "{DCE19DAF-69AC-46DB-B14A-39F0FAA5DB74}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vpxdec", "vp9-dec-test\vpxdec\vpxdec.vcxproj", "{427CA27F-0F97-4791-912D-E2499DCAE406}"
-	ProjectSection(ProjectDependencies) = postProject
-		{DCE19DAF-69AC-46DB-B14A-39F0FAA5DB74} = {DCE19DAF-69AC-46DB-B14A-39F0FAA5DB74}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "google-tests", "vp9-dec-test\google-tests\build\test-vp9-dec.vcxproj", "{020D5EB9-D317-46FE-9CEC-557444DCDC6E}"
-	ProjectSection(ProjectDependencies) = postProject
-		{DCE19DAF-69AC-46DB-B14A-39F0FAA5DB74} = {DCE19DAF-69AC-46DB-B14A-39F0FAA5DB74}
-	EndProjectSection
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{3FD52CF0-07C7-4FFB-B2D1-6D23F366E206}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "luxSimplePlayer", "vp9-dec-test\libSimplePlayer\libSimplePlayer.vcxproj", "{901DB192-225E-48D3-8C4D-015A4DE1F6B4}"
-	ProjectSection(ProjectDependencies) = postProject
-		{DCE19DAF-69AC-46DB-B14A-39F0FAA5DB74} = {DCE19DAF-69AC-46DB-B14A-39F0FAA5DB74}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libSceSampleUtil", "vp9-dec-test\PS4\common\source\sampleutil\libSceSampleUtil.vcxproj", "{30A1B994-C2C6-485F-911B-FB4674366DA8}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_toolkit", "vp9-dec-test\PS4\toolkit\toolkit.vcxproj", "{2F4CCF89-7649-4C7F-8CBF-F976B4FBC2B6}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_framework", "vp9-dec-test\PS4\framework\framework.vcxproj", "{F950CC65-80EF-4B1F-86A3-2B87B3F23C96}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_dbg_font", "vp9-dec-test\PS4\dbg_font\dbg_font.vcxproj", "{43565AD8-688C-4451-A81F-2ABA8E957753}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "player", "player", "{1453DBCA-657E-4D99-A391-EDDE23FC4396}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ErrorResilienceTest", "vp9-dec-test\ErrorResilienceTest\ErrorResilienceTest.vcxproj", "{F216E2AC-3265-4071-9F17-709D747FF1D1}"
-	ProjectSection(ProjectDependencies) = postProject
-		{DCE19DAF-69AC-46DB-B14A-39F0FAA5DB74} = {DCE19DAF-69AC-46DB-B14A-39F0FAA5DB74}
-	EndProjectSection
-EndProject
-Global
-	GlobalSection(SolutionConfigurationPlatforms) = preSolution
-		Debug|ORBIS = Debug|ORBIS
-		Release|ORBIS = Release|ORBIS
-	EndGlobalSection
-	GlobalSection(ProjectConfigurationPlatforms) = postSolution
-		{DCE19DAF-69AC-46DB-B14A-39F0FAA5DB74}.Debug|ORBIS.ActiveCfg = Debug|ORBIS
-		{DCE19DAF-69AC-46DB-B14A-39F0FAA5DB74}.Debug|ORBIS.Build.0 = Debug|ORBIS
-		{DCE19DAF-69AC-46DB-B14A-39F0FAA5DB74}.Release|ORBIS.ActiveCfg = Release|ORBIS
-		{DCE19DAF-69AC-46DB-B14A-39F0FAA5DB74}.Release|ORBIS.Build.0 = Release|ORBIS
-		{427CA27F-0F97-4791-912D-E2499DCAE406}.Debug|ORBIS.ActiveCfg = Debug|ORBIS
-		{427CA27F-0F97-4791-912D-E2499DCAE406}.Debug|ORBIS.Build.0 = Debug|ORBIS
-		{427CA27F-0F97-4791-912D-E2499DCAE406}.Release|ORBIS.ActiveCfg = Release|ORBIS
-		{427CA27F-0F97-4791-912D-E2499DCAE406}.Release|ORBIS.Build.0 = Release|ORBIS
-		{020D5EB9-D317-46FE-9CEC-557444DCDC6E}.Debug|ORBIS.ActiveCfg = Debug|ORBIS
-		{020D5EB9-D317-46FE-9CEC-557444DCDC6E}.Debug|ORBIS.Build.0 = Debug|ORBIS
-		{020D5EB9-D317-46FE-9CEC-557444DCDC6E}.Release|ORBIS.ActiveCfg = Release|ORBIS
-		{020D5EB9-D317-46FE-9CEC-557444DCDC6E}.Release|ORBIS.Build.0 = Release|ORBIS
-		{901DB192-225E-48D3-8C4D-015A4DE1F6B4}.Debug|ORBIS.ActiveCfg = Debug|ORBIS
-		{901DB192-225E-48D3-8C4D-015A4DE1F6B4}.Debug|ORBIS.Build.0 = Debug|ORBIS
-		{901DB192-225E-48D3-8C4D-015A4DE1F6B4}.Release|ORBIS.ActiveCfg = Release|ORBIS
-		{901DB192-225E-48D3-8C4D-015A4DE1F6B4}.Release|ORBIS.Build.0 = Release|ORBIS
-		{30A1B994-C2C6-485F-911B-FB4674366DA8}.Debug|ORBIS.ActiveCfg = Debug|ORBIS
-		{30A1B994-C2C6-485F-911B-FB4674366DA8}.Debug|ORBIS.Build.0 = Debug|ORBIS
-		{30A1B994-C2C6-485F-911B-FB4674366DA8}.Release|ORBIS.ActiveCfg = Release|ORBIS
-		{30A1B994-C2C6-485F-911B-FB4674366DA8}.Release|ORBIS.Build.0 = Release|ORBIS
-		{2F4CCF89-7649-4C7F-8CBF-F976B4FBC2B6}.Debug|ORBIS.ActiveCfg = Debug|ORBIS
-		{2F4CCF89-7649-4C7F-8CBF-F976B4FBC2B6}.Debug|ORBIS.Build.0 = Debug|ORBIS
-		{2F4CCF89-7649-4C7F-8CBF-F976B4FBC2B6}.Release|ORBIS.ActiveCfg = Release|ORBIS
-		{2F4CCF89-7649-4C7F-8CBF-F976B4FBC2B6}.Release|ORBIS.Build.0 = Release|ORBIS
-		{F950CC65-80EF-4B1F-86A3-2B87B3F23C96}.Debug|ORBIS.ActiveCfg = Debug|ORBIS
-		{F950CC65-80EF-4B1F-86A3-2B87B3F23C96}.Debug|ORBIS.Build.0 = Debug|ORBIS
-		{F950CC65-80EF-4B1F-86A3-2B87B3F23C96}.Release|ORBIS.ActiveCfg = Release|ORBIS
-		{F950CC65-80EF-4B1F-86A3-2B87B3F23C96}.Release|ORBIS.Build.0 = Release|ORBIS
-		{43565AD8-688C-4451-A81F-2ABA8E957753}.Debug|ORBIS.ActiveCfg = Debug|ORBIS
-		{43565AD8-688C-4451-A81F-2ABA8E957753}.Debug|ORBIS.Build.0 = Debug|ORBIS
-		{43565AD8-688C-4451-A81F-2ABA8E957753}.Release|ORBIS.ActiveCfg = Release|ORBIS
-		{43565AD8-688C-4451-A81F-2ABA8E957753}.Release|ORBIS.Build.0 = Release|ORBIS
-		{F216E2AC-3265-4071-9F17-709D747FF1D1}.Debug|ORBIS.ActiveCfg = Debug|ORBIS
-		{F216E2AC-3265-4071-9F17-709D747FF1D1}.Debug|ORBIS.Build.0 = Debug|ORBIS
-		{F216E2AC-3265-4071-9F17-709D747FF1D1}.Release|ORBIS.ActiveCfg = Release|ORBIS
-		{F216E2AC-3265-4071-9F17-709D747FF1D1}.Release|ORBIS.Build.0 = Release|ORBIS
-	EndGlobalSection
-	GlobalSection(SolutionProperties) = preSolution
-		HideSolutionNode = FALSE
-	EndGlobalSection
-	GlobalSection(NestedProjects) = preSolution
-		{427CA27F-0F97-4791-912D-E2499DCAE406} = {3FD52CF0-07C7-4FFB-B2D1-6D23F366E206}
-		{020D5EB9-D317-46FE-9CEC-557444DCDC6E} = {3FD52CF0-07C7-4FFB-B2D1-6D23F366E206}
-		{901DB192-225E-48D3-8C4D-015A4DE1F6B4} = {1453DBCA-657E-4D99-A391-EDDE23FC4396}
-		{30A1B994-C2C6-485F-911B-FB4674366DA8} = {1453DBCA-657E-4D99-A391-EDDE23FC4396}
-		{2F4CCF89-7649-4C7F-8CBF-F976B4FBC2B6} = {1453DBCA-657E-4D99-A391-EDDE23FC4396}
-		{F950CC65-80EF-4B1F-86A3-2B87B3F23C96} = {1453DBCA-657E-4D99-A391-EDDE23FC4396}
-		{43565AD8-688C-4451-A81F-2ABA8E957753} = {1453DBCA-657E-4D99-A391-EDDE23FC4396}
-		{1453DBCA-657E-4D99-A391-EDDE23FC4396} = {3FD52CF0-07C7-4FFB-B2D1-6D23F366E206}
-		{F216E2AC-3265-4071-9F17-709D747FF1D1} = {3FD52CF0-07C7-4FFB-B2D1-6D23F366E206}
-	EndGlobalSection
-EndGlobal
diff --git a/src/third_party/llvm-project/libunwind/libunwind.gyp b/src/third_party/llvm-project/libunwind/libunwind.gyp
index 833ca4a..3a32bbd 100644
--- a/src/third_party/llvm-project/libunwind/libunwind.gyp
+++ b/src/third_party/llvm-project/libunwind/libunwind.gyp
@@ -20,8 +20,6 @@
       'include_dirs': [
         'include',
         '<(DEPTH)/third_party/llvm-project/libcxx/include',
-        '<(DEPTH)/third_party/musl/include',
-        '<(DEPTH)/third_party/musl/generated/include',
       ],
       'dependencies': [
         '<(DEPTH)/starboard/common/common.gyp:common',
@@ -86,8 +84,6 @@
       'all_dependent_settings': {
         'include_dirs': [
           '<(DEPTH)/third_party/llvm-project/libcxx/include',
-          '<(DEPTH)/third_party/musl/include',
-          '<(DEPTH)/third_party/musl/generated/include',
         ],
         'defines': [
           # Ensure that __external_threading is used for threading support.
diff --git a/src/third_party/llvm-project/libunwind/src/AddressSpace.hpp b/src/third_party/llvm-project/libunwind/src/AddressSpace.hpp
index e3a7e40..a2ea283 100644
--- a/src/third_party/llvm-project/libunwind/src/AddressSpace.hpp
+++ b/src/third_party/llvm-project/libunwind/src/AddressSpace.hpp
@@ -385,6 +385,9 @@
 
 inline bool LocalAddressSpace::findUnwindSections(pint_t targetAddr,
                                                   UnwindInfoSections &info) {
+#if defined(STARBOARD)
+  return false;
+#endif
 #ifdef __APPLE__
   dyld_unwind_sections dyldInfo;
   if (_dyld_find_unwind_sections((void *)targetAddr, &dyldInfo)) {
@@ -584,6 +587,7 @@
 inline bool LocalAddressSpace::findFunctionName(pint_t addr, char *buf,
                                                 size_t bufLen,
                                                 unw_word_t *offset) {
+#if !defined(STARBOARD)
 #if _LIBUNWIND_USE_DLADDR
   Dl_info dyldInfo;
   if (dladdr((void *)addr, &dyldInfo)) {
@@ -594,6 +598,7 @@
     }
   }
 #endif
+#endif
   return false;
 }
 
diff --git a/src/third_party/musl/arch/aarch64/bits/alltypes.h b/src/third_party/musl/arch/aarch64/bits/alltypes.h
new file mode 100644
index 0000000..f90365e
--- /dev/null
+++ b/src/third_party/musl/arch/aarch64/bits/alltypes.h
@@ -0,0 +1,401 @@
+#define _Addr long
+#define _Int64 long
+#define _Reg long
+
+#if defined(__NEED_va_list) && !defined(__DEFINED_va_list)
+typedef __builtin_va_list va_list;
+#define __DEFINED_va_list
+#endif
+
+#if defined(__NEED___isoc_va_list) && !defined(__DEFINED___isoc_va_list)
+typedef __builtin_va_list __isoc_va_list;
+#define __DEFINED___isoc_va_list
+#endif
+
+
+#ifndef __cplusplus
+#if defined(__NEED_wchar_t) && !defined(__DEFINED_wchar_t)
+typedef unsigned wchar_t;
+#define __DEFINED_wchar_t
+#endif
+
+#endif
+#if defined(__NEED_wint_t) && !defined(__DEFINED_wint_t)
+typedef unsigned wint_t;
+#define __DEFINED_wint_t
+#endif
+
+
+#if defined(__NEED_blksize_t) && !defined(__DEFINED_blksize_t)
+typedef int blksize_t;
+#define __DEFINED_blksize_t
+#endif
+
+#if defined(__NEED_nlink_t) && !defined(__DEFINED_nlink_t)
+typedef unsigned int nlink_t;
+#define __DEFINED_nlink_t
+#endif
+
+
+#if defined(__NEED_float_t) && !defined(__DEFINED_float_t)
+typedef float float_t;
+#define __DEFINED_float_t
+#endif
+
+#if defined(__NEED_double_t) && !defined(__DEFINED_double_t)
+typedef double double_t;
+#define __DEFINED_double_t
+#endif
+
+
+#if defined(__NEED_max_align_t) && !defined(__DEFINED_max_align_t)
+typedef struct { long long __ll; long double __ld; } max_align_t;
+#define __DEFINED_max_align_t
+#endif
+
+
+#if defined(__NEED_time_t) && !defined(__DEFINED_time_t)
+typedef long time_t;
+#define __DEFINED_time_t
+#endif
+
+#if defined(__NEED_suseconds_t) && !defined(__DEFINED_suseconds_t)
+typedef long suseconds_t;
+#define __DEFINED_suseconds_t
+#endif
+
+
+#if defined(__NEED_pthread_attr_t) && !defined(__DEFINED_pthread_attr_t)
+typedef struct { union { int __i[14]; volatile int __vi[14]; unsigned long __s[7]; } __u; } pthread_attr_t;
+#define __DEFINED_pthread_attr_t
+#endif
+
+#if defined(__NEED_pthread_mutex_t) && !defined(__DEFINED_pthread_mutex_t)
+typedef struct { union { int __i[10]; volatile int __vi[10]; volatile void *volatile __p[5]; } __u; } pthread_mutex_t;
+#define __DEFINED_pthread_mutex_t
+#endif
+
+#if defined(__NEED_mtx_t) && !defined(__DEFINED_mtx_t)
+typedef struct { union { int __i[10]; volatile int __vi[10]; volatile void *volatile __p[5]; } __u; } mtx_t;
+#define __DEFINED_mtx_t
+#endif
+
+#if defined(__NEED_pthread_cond_t) && !defined(__DEFINED_pthread_cond_t)
+typedef struct { union { int __i[12]; volatile int __vi[12]; void *__p[6]; } __u; } pthread_cond_t;
+#define __DEFINED_pthread_cond_t
+#endif
+
+#if defined(__NEED_cnd_t) && !defined(__DEFINED_cnd_t)
+typedef struct { union { int __i[12]; volatile int __vi[12]; void *__p[6]; } __u; } cnd_t;
+#define __DEFINED_cnd_t
+#endif
+
+#if defined(__NEED_pthread_rwlock_t) && !defined(__DEFINED_pthread_rwlock_t)
+typedef struct { union { int __i[14]; volatile int __vi[14]; void *__p[7]; } __u; } pthread_rwlock_t;
+#define __DEFINED_pthread_rwlock_t
+#endif
+
+#if defined(__NEED_pthread_barrier_t) && !defined(__DEFINED_pthread_barrier_t)
+typedef struct { union { int __i[8]; volatile int __vi[8]; void *__p[4]; } __u; } pthread_barrier_t;
+#define __DEFINED_pthread_barrier_t
+#endif
+
+#if defined(__NEED_size_t) && !defined(__DEFINED_size_t)
+typedef unsigned _Addr size_t;
+#define __DEFINED_size_t
+#endif
+
+#if defined(__NEED_uintptr_t) && !defined(__DEFINED_uintptr_t)
+typedef unsigned _Addr uintptr_t;
+#define __DEFINED_uintptr_t
+#endif
+
+#if defined(__NEED_ptrdiff_t) && !defined(__DEFINED_ptrdiff_t)
+typedef _Addr ptrdiff_t;
+#define __DEFINED_ptrdiff_t
+#endif
+
+#if defined(__NEED_ssize_t) && !defined(__DEFINED_ssize_t)
+typedef _Addr ssize_t;
+#define __DEFINED_ssize_t
+#endif
+
+#if defined(__NEED_intptr_t) && !defined(__DEFINED_intptr_t)
+typedef _Addr intptr_t;
+#define __DEFINED_intptr_t
+#endif
+
+#if defined(__NEED_regoff_t) && !defined(__DEFINED_regoff_t)
+typedef _Addr regoff_t;
+#define __DEFINED_regoff_t
+#endif
+
+#if defined(__NEED_register_t) && !defined(__DEFINED_register_t)
+typedef _Reg register_t;
+#define __DEFINED_register_t
+#endif
+
+
+#if defined(__NEED_int8_t) && !defined(__DEFINED_int8_t)
+typedef signed char     int8_t;
+#define __DEFINED_int8_t
+#endif
+
+#if defined(__NEED_int16_t) && !defined(__DEFINED_int16_t)
+typedef signed short    int16_t;
+#define __DEFINED_int16_t
+#endif
+
+#if defined(__NEED_int32_t) && !defined(__DEFINED_int32_t)
+typedef signed int      int32_t;
+#define __DEFINED_int32_t
+#endif
+
+#if defined(__NEED_int64_t) && !defined(__DEFINED_int64_t)
+typedef signed _Int64   int64_t;
+#define __DEFINED_int64_t
+#endif
+
+#if defined(__NEED_intmax_t) && !defined(__DEFINED_intmax_t)
+typedef signed _Int64   intmax_t;
+#define __DEFINED_intmax_t
+#endif
+
+#if defined(__NEED_uint8_t) && !defined(__DEFINED_uint8_t)
+typedef unsigned char   uint8_t;
+#define __DEFINED_uint8_t
+#endif
+
+#if defined(__NEED_uint16_t) && !defined(__DEFINED_uint16_t)
+typedef unsigned short  uint16_t;
+#define __DEFINED_uint16_t
+#endif
+
+#if defined(__NEED_uint32_t) && !defined(__DEFINED_uint32_t)
+typedef unsigned int    uint32_t;
+#define __DEFINED_uint32_t
+#endif
+
+#if defined(__NEED_uint64_t) && !defined(__DEFINED_uint64_t)
+typedef unsigned _Int64 uint64_t;
+#define __DEFINED_uint64_t
+#endif
+
+#if defined(__NEED_u_int64_t) && !defined(__DEFINED_u_int64_t)
+typedef unsigned _Int64 u_int64_t;
+#define __DEFINED_u_int64_t
+#endif
+
+#if defined(__NEED_uintmax_t) && !defined(__DEFINED_uintmax_t)
+typedef unsigned _Int64 uintmax_t;
+#define __DEFINED_uintmax_t
+#endif
+
+
+#if defined(__NEED_mode_t) && !defined(__DEFINED_mode_t)
+typedef unsigned mode_t;
+#define __DEFINED_mode_t
+#endif
+
+#if defined(__NEED_nlink_t) && !defined(__DEFINED_nlink_t)
+typedef unsigned _Reg nlink_t;
+#define __DEFINED_nlink_t
+#endif
+
+#if defined(__NEED_off_t) && !defined(__DEFINED_off_t)
+typedef _Int64 off_t;
+#define __DEFINED_off_t
+#endif
+
+#if defined(__NEED_ino_t) && !defined(__DEFINED_ino_t)
+typedef unsigned _Int64 ino_t;
+#define __DEFINED_ino_t
+#endif
+
+#if defined(__NEED_dev_t) && !defined(__DEFINED_dev_t)
+typedef unsigned _Int64 dev_t;
+#define __DEFINED_dev_t
+#endif
+
+#if defined(__NEED_blksize_t) && !defined(__DEFINED_blksize_t)
+typedef long blksize_t;
+#define __DEFINED_blksize_t
+#endif
+
+#if defined(__NEED_blkcnt_t) && !defined(__DEFINED_blkcnt_t)
+typedef _Int64 blkcnt_t;
+#define __DEFINED_blkcnt_t
+#endif
+
+#if defined(__NEED_fsblkcnt_t) && !defined(__DEFINED_fsblkcnt_t)
+typedef unsigned _Int64 fsblkcnt_t;
+#define __DEFINED_fsblkcnt_t
+#endif
+
+#if defined(__NEED_fsfilcnt_t) && !defined(__DEFINED_fsfilcnt_t)
+typedef unsigned _Int64 fsfilcnt_t;
+#define __DEFINED_fsfilcnt_t
+#endif
+
+
+#if defined(__NEED_wint_t) && !defined(__DEFINED_wint_t)
+typedef unsigned wint_t;
+#define __DEFINED_wint_t
+#endif
+
+#if defined(__NEED_wctype_t) && !defined(__DEFINED_wctype_t)
+typedef unsigned long wctype_t;
+#define __DEFINED_wctype_t
+#endif
+
+
+#if defined(__NEED_timer_t) && !defined(__DEFINED_timer_t)
+typedef void * timer_t;
+#define __DEFINED_timer_t
+#endif
+
+#if defined(__NEED_clockid_t) && !defined(__DEFINED_clockid_t)
+typedef int clockid_t;
+#define __DEFINED_clockid_t
+#endif
+
+#if defined(__NEED_clock_t) && !defined(__DEFINED_clock_t)
+typedef long clock_t;
+#define __DEFINED_clock_t
+#endif
+
+#if defined(__NEED_struct_timeval) && !defined(__DEFINED_struct_timeval)
+struct timeval { time_t tv_sec; suseconds_t tv_usec; };
+#define __DEFINED_struct_timeval
+#endif
+
+#if defined(__NEED_struct_timespec) && !defined(__DEFINED_struct_timespec)
+struct timespec { time_t tv_sec; long tv_nsec; };
+#define __DEFINED_struct_timespec
+#endif
+
+
+#if defined(__NEED_pid_t) && !defined(__DEFINED_pid_t)
+typedef int pid_t;
+#define __DEFINED_pid_t
+#endif
+
+#if defined(__NEED_id_t) && !defined(__DEFINED_id_t)
+typedef unsigned id_t;
+#define __DEFINED_id_t
+#endif
+
+#if defined(__NEED_uid_t) && !defined(__DEFINED_uid_t)
+typedef unsigned uid_t;
+#define __DEFINED_uid_t
+#endif
+
+#if defined(__NEED_gid_t) && !defined(__DEFINED_gid_t)
+typedef unsigned gid_t;
+#define __DEFINED_gid_t
+#endif
+
+#if defined(__NEED_key_t) && !defined(__DEFINED_key_t)
+typedef int key_t;
+#define __DEFINED_key_t
+#endif
+
+#if defined(__NEED_useconds_t) && !defined(__DEFINED_useconds_t)
+typedef unsigned useconds_t;
+#define __DEFINED_useconds_t
+#endif
+
+
+#ifdef __cplusplus
+#if defined(__NEED_pthread_t) && !defined(__DEFINED_pthread_t)
+typedef unsigned long pthread_t;
+#define __DEFINED_pthread_t
+#endif
+
+#else
+#if defined(__NEED_pthread_t) && !defined(__DEFINED_pthread_t)
+typedef struct __pthread * pthread_t;
+#define __DEFINED_pthread_t
+#endif
+
+#endif
+#if defined(__NEED_pthread_once_t) && !defined(__DEFINED_pthread_once_t)
+typedef int pthread_once_t;
+#define __DEFINED_pthread_once_t
+#endif
+
+#if defined(__NEED_pthread_key_t) && !defined(__DEFINED_pthread_key_t)
+typedef unsigned pthread_key_t;
+#define __DEFINED_pthread_key_t
+#endif
+
+#if defined(__NEED_pthread_spinlock_t) && !defined(__DEFINED_pthread_spinlock_t)
+typedef int pthread_spinlock_t;
+#define __DEFINED_pthread_spinlock_t
+#endif
+
+#if defined(__NEED_pthread_mutexattr_t) && !defined(__DEFINED_pthread_mutexattr_t)
+typedef struct { unsigned __attr; } pthread_mutexattr_t;
+#define __DEFINED_pthread_mutexattr_t
+#endif
+
+#if defined(__NEED_pthread_condattr_t) && !defined(__DEFINED_pthread_condattr_t)
+typedef struct { unsigned __attr; } pthread_condattr_t;
+#define __DEFINED_pthread_condattr_t
+#endif
+
+#if defined(__NEED_pthread_barrierattr_t) && !defined(__DEFINED_pthread_barrierattr_t)
+typedef struct { unsigned __attr; } pthread_barrierattr_t;
+#define __DEFINED_pthread_barrierattr_t
+#endif
+
+#if defined(__NEED_pthread_rwlockattr_t) && !defined(__DEFINED_pthread_rwlockattr_t)
+typedef struct { unsigned __attr[2]; } pthread_rwlockattr_t;
+#define __DEFINED_pthread_rwlockattr_t
+#endif
+
+
+#if defined(__NEED_FILE) && !defined(__DEFINED_FILE)
+typedef struct _IO_FILE FILE;
+#define __DEFINED_FILE
+#endif
+
+
+#if defined(__NEED_mbstate_t) && !defined(__DEFINED_mbstate_t)
+typedef struct __mbstate_t { unsigned __opaque1, __opaque2; } mbstate_t;
+#define __DEFINED_mbstate_t
+#endif
+
+
+#if defined(__NEED_locale_t) && !defined(__DEFINED_locale_t)
+typedef struct __locale_struct * locale_t;
+#define __DEFINED_locale_t
+#endif
+
+
+#if defined(__NEED_sigset_t) && !defined(__DEFINED_sigset_t)
+typedef struct __sigset_t { unsigned long __bits[128/sizeof(long)]; } sigset_t;
+#define __DEFINED_sigset_t
+#endif
+
+
+#if defined(__NEED_struct_iovec) && !defined(__DEFINED_struct_iovec)
+struct iovec { void *iov_base; size_t iov_len; };
+#define __DEFINED_struct_iovec
+#endif
+
+
+#if defined(__NEED_socklen_t) && !defined(__DEFINED_socklen_t)
+typedef unsigned socklen_t;
+#define __DEFINED_socklen_t
+#endif
+
+#if defined(__NEED_sa_family_t) && !defined(__DEFINED_sa_family_t)
+typedef unsigned short sa_family_t;
+#define __DEFINED_sa_family_t
+#endif
+
+
+#undef _Addr
+#undef _Int64
+#undef _Reg
diff --git a/src/third_party/musl/arch/arm/bits/alltypes.h b/src/third_party/musl/arch/arm/bits/alltypes.h
new file mode 100644
index 0000000..f8c6e76
--- /dev/null
+++ b/src/third_party/musl/arch/arm/bits/alltypes.h
@@ -0,0 +1,385 @@
+#define _Addr int
+#define _Int64 long long
+#define _Reg int
+
+#if defined(__NEED_va_list) && !defined(__DEFINED_va_list)
+typedef __builtin_va_list va_list;
+#define __DEFINED_va_list
+#endif
+
+#if defined(__NEED___isoc_va_list) && !defined(__DEFINED___isoc_va_list)
+typedef __builtin_va_list __isoc_va_list;
+#define __DEFINED___isoc_va_list
+#endif
+
+
+#ifndef __cplusplus
+#if defined(__NEED_wchar_t) && !defined(__DEFINED_wchar_t)
+typedef unsigned wchar_t;
+#define __DEFINED_wchar_t
+#endif
+
+#endif
+
+#if defined(__NEED_float_t) && !defined(__DEFINED_float_t)
+typedef float float_t;
+#define __DEFINED_float_t
+#endif
+
+#if defined(__NEED_double_t) && !defined(__DEFINED_double_t)
+typedef double double_t;
+#define __DEFINED_double_t
+#endif
+
+
+#if defined(__NEED_max_align_t) && !defined(__DEFINED_max_align_t)
+typedef struct { long long __ll; long double __ld; } max_align_t;
+#define __DEFINED_max_align_t
+#endif
+
+
+#if defined(__NEED_time_t) && !defined(__DEFINED_time_t)
+typedef long time_t;
+#define __DEFINED_time_t
+#endif
+
+#if defined(__NEED_suseconds_t) && !defined(__DEFINED_suseconds_t)
+typedef long suseconds_t;
+#define __DEFINED_suseconds_t
+#endif
+
+
+#if defined(__NEED_pthread_attr_t) && !defined(__DEFINED_pthread_attr_t)
+typedef struct { union { int __i[9]; volatile int __vi[9]; unsigned __s[9]; } __u; } pthread_attr_t;
+#define __DEFINED_pthread_attr_t
+#endif
+
+#if defined(__NEED_pthread_mutex_t) && !defined(__DEFINED_pthread_mutex_t)
+typedef struct { union { int __i[6]; volatile int __vi[6]; volatile void *volatile __p[6]; } __u; } pthread_mutex_t;
+#define __DEFINED_pthread_mutex_t
+#endif
+
+#if defined(__NEED_mtx_t) && !defined(__DEFINED_mtx_t)
+typedef struct { union { int __i[6]; volatile int __vi[6]; volatile void *volatile __p[6]; } __u; } mtx_t;
+#define __DEFINED_mtx_t
+#endif
+
+#if defined(__NEED_pthread_cond_t) && !defined(__DEFINED_pthread_cond_t)
+typedef struct { union { int __i[12]; volatile int __vi[12]; void *__p[12]; } __u; } pthread_cond_t;
+#define __DEFINED_pthread_cond_t
+#endif
+
+#if defined(__NEED_cnd_t) && !defined(__DEFINED_cnd_t)
+typedef struct { union { int __i[12]; volatile int __vi[12]; void *__p[12]; } __u; } cnd_t;
+#define __DEFINED_cnd_t
+#endif
+
+#if defined(__NEED_pthread_rwlock_t) && !defined(__DEFINED_pthread_rwlock_t)
+typedef struct { union { int __i[8]; volatile int __vi[8]; void *__p[8]; } __u; } pthread_rwlock_t;
+#define __DEFINED_pthread_rwlock_t
+#endif
+
+#if defined(__NEED_pthread_barrier_t) && !defined(__DEFINED_pthread_barrier_t)
+typedef struct { union { int __i[5]; volatile int __vi[5]; void *__p[5]; } __u; } pthread_barrier_t;
+#define __DEFINED_pthread_barrier_t
+#endif
+
+#if defined(__NEED_size_t) && !defined(__DEFINED_size_t)
+typedef unsigned _Addr size_t;
+#define __DEFINED_size_t
+#endif
+
+#if defined(__NEED_uintptr_t) && !defined(__DEFINED_uintptr_t)
+typedef unsigned _Addr uintptr_t;
+#define __DEFINED_uintptr_t
+#endif
+
+#if defined(__NEED_ptrdiff_t) && !defined(__DEFINED_ptrdiff_t)
+typedef _Addr ptrdiff_t;
+#define __DEFINED_ptrdiff_t
+#endif
+
+#if defined(__NEED_ssize_t) && !defined(__DEFINED_ssize_t)
+typedef _Addr ssize_t;
+#define __DEFINED_ssize_t
+#endif
+
+#if defined(__NEED_intptr_t) && !defined(__DEFINED_intptr_t)
+typedef _Addr intptr_t;
+#define __DEFINED_intptr_t
+#endif
+
+#if defined(__NEED_regoff_t) && !defined(__DEFINED_regoff_t)
+typedef _Addr regoff_t;
+#define __DEFINED_regoff_t
+#endif
+
+#if defined(__NEED_register_t) && !defined(__DEFINED_register_t)
+typedef _Reg register_t;
+#define __DEFINED_register_t
+#endif
+
+
+#if defined(__NEED_int8_t) && !defined(__DEFINED_int8_t)
+typedef signed char     int8_t;
+#define __DEFINED_int8_t
+#endif
+
+#if defined(__NEED_int16_t) && !defined(__DEFINED_int16_t)
+typedef signed short    int16_t;
+#define __DEFINED_int16_t
+#endif
+
+#if defined(__NEED_int32_t) && !defined(__DEFINED_int32_t)
+typedef signed int      int32_t;
+#define __DEFINED_int32_t
+#endif
+
+#if defined(__NEED_int64_t) && !defined(__DEFINED_int64_t)
+typedef signed _Int64   int64_t;
+#define __DEFINED_int64_t
+#endif
+
+#if defined(__NEED_intmax_t) && !defined(__DEFINED_intmax_t)
+typedef signed _Int64   intmax_t;
+#define __DEFINED_intmax_t
+#endif
+
+#if defined(__NEED_uint8_t) && !defined(__DEFINED_uint8_t)
+typedef unsigned char   uint8_t;
+#define __DEFINED_uint8_t
+#endif
+
+#if defined(__NEED_uint16_t) && !defined(__DEFINED_uint16_t)
+typedef unsigned short  uint16_t;
+#define __DEFINED_uint16_t
+#endif
+
+#if defined(__NEED_uint32_t) && !defined(__DEFINED_uint32_t)
+typedef unsigned int    uint32_t;
+#define __DEFINED_uint32_t
+#endif
+
+#if defined(__NEED_uint64_t) && !defined(__DEFINED_uint64_t)
+typedef unsigned _Int64 uint64_t;
+#define __DEFINED_uint64_t
+#endif
+
+#if defined(__NEED_u_int64_t) && !defined(__DEFINED_u_int64_t)
+typedef unsigned _Int64 u_int64_t;
+#define __DEFINED_u_int64_t
+#endif
+
+#if defined(__NEED_uintmax_t) && !defined(__DEFINED_uintmax_t)
+typedef unsigned _Int64 uintmax_t;
+#define __DEFINED_uintmax_t
+#endif
+
+
+#if defined(__NEED_mode_t) && !defined(__DEFINED_mode_t)
+typedef unsigned mode_t;
+#define __DEFINED_mode_t
+#endif
+
+#if defined(__NEED_nlink_t) && !defined(__DEFINED_nlink_t)
+typedef unsigned _Reg nlink_t;
+#define __DEFINED_nlink_t
+#endif
+
+#if defined(__NEED_off_t) && !defined(__DEFINED_off_t)
+typedef _Int64 off_t;
+#define __DEFINED_off_t
+#endif
+
+#if defined(__NEED_ino_t) && !defined(__DEFINED_ino_t)
+typedef unsigned _Int64 ino_t;
+#define __DEFINED_ino_t
+#endif
+
+#if defined(__NEED_dev_t) && !defined(__DEFINED_dev_t)
+typedef unsigned _Int64 dev_t;
+#define __DEFINED_dev_t
+#endif
+
+#if defined(__NEED_blksize_t) && !defined(__DEFINED_blksize_t)
+typedef long blksize_t;
+#define __DEFINED_blksize_t
+#endif
+
+#if defined(__NEED_blkcnt_t) && !defined(__DEFINED_blkcnt_t)
+typedef _Int64 blkcnt_t;
+#define __DEFINED_blkcnt_t
+#endif
+
+#if defined(__NEED_fsblkcnt_t) && !defined(__DEFINED_fsblkcnt_t)
+typedef unsigned _Int64 fsblkcnt_t;
+#define __DEFINED_fsblkcnt_t
+#endif
+
+#if defined(__NEED_fsfilcnt_t) && !defined(__DEFINED_fsfilcnt_t)
+typedef unsigned _Int64 fsfilcnt_t;
+#define __DEFINED_fsfilcnt_t
+#endif
+
+
+#if defined(__NEED_wint_t) && !defined(__DEFINED_wint_t)
+typedef unsigned wint_t;
+#define __DEFINED_wint_t
+#endif
+
+#if defined(__NEED_wctype_t) && !defined(__DEFINED_wctype_t)
+typedef unsigned long wctype_t;
+#define __DEFINED_wctype_t
+#endif
+
+
+#if defined(__NEED_timer_t) && !defined(__DEFINED_timer_t)
+typedef void * timer_t;
+#define __DEFINED_timer_t
+#endif
+
+#if defined(__NEED_clockid_t) && !defined(__DEFINED_clockid_t)
+typedef int clockid_t;
+#define __DEFINED_clockid_t
+#endif
+
+#if defined(__NEED_clock_t) && !defined(__DEFINED_clock_t)
+typedef long clock_t;
+#define __DEFINED_clock_t
+#endif
+
+#if defined(__NEED_struct_timeval) && !defined(__DEFINED_struct_timeval)
+struct timeval { time_t tv_sec; suseconds_t tv_usec; };
+#define __DEFINED_struct_timeval
+#endif
+
+#if defined(__NEED_struct_timespec) && !defined(__DEFINED_struct_timespec)
+struct timespec { time_t tv_sec; long tv_nsec; };
+#define __DEFINED_struct_timespec
+#endif
+
+
+#if defined(__NEED_pid_t) && !defined(__DEFINED_pid_t)
+typedef int pid_t;
+#define __DEFINED_pid_t
+#endif
+
+#if defined(__NEED_id_t) && !defined(__DEFINED_id_t)
+typedef unsigned id_t;
+#define __DEFINED_id_t
+#endif
+
+#if defined(__NEED_uid_t) && !defined(__DEFINED_uid_t)
+typedef unsigned uid_t;
+#define __DEFINED_uid_t
+#endif
+
+#if defined(__NEED_gid_t) && !defined(__DEFINED_gid_t)
+typedef unsigned gid_t;
+#define __DEFINED_gid_t
+#endif
+
+#if defined(__NEED_key_t) && !defined(__DEFINED_key_t)
+typedef int key_t;
+#define __DEFINED_key_t
+#endif
+
+#if defined(__NEED_useconds_t) && !defined(__DEFINED_useconds_t)
+typedef unsigned useconds_t;
+#define __DEFINED_useconds_t
+#endif
+
+
+#ifdef __cplusplus
+#if defined(__NEED_pthread_t) && !defined(__DEFINED_pthread_t)
+typedef unsigned long pthread_t;
+#define __DEFINED_pthread_t
+#endif
+
+#else
+#if defined(__NEED_pthread_t) && !defined(__DEFINED_pthread_t)
+typedef struct __pthread * pthread_t;
+#define __DEFINED_pthread_t
+#endif
+
+#endif
+#if defined(__NEED_pthread_once_t) && !defined(__DEFINED_pthread_once_t)
+typedef int pthread_once_t;
+#define __DEFINED_pthread_once_t
+#endif
+
+#if defined(__NEED_pthread_key_t) && !defined(__DEFINED_pthread_key_t)
+typedef unsigned pthread_key_t;
+#define __DEFINED_pthread_key_t
+#endif
+
+#if defined(__NEED_pthread_spinlock_t) && !defined(__DEFINED_pthread_spinlock_t)
+typedef int pthread_spinlock_t;
+#define __DEFINED_pthread_spinlock_t
+#endif
+
+#if defined(__NEED_pthread_mutexattr_t) && !defined(__DEFINED_pthread_mutexattr_t)
+typedef struct { unsigned __attr; } pthread_mutexattr_t;
+#define __DEFINED_pthread_mutexattr_t
+#endif
+
+#if defined(__NEED_pthread_condattr_t) && !defined(__DEFINED_pthread_condattr_t)
+typedef struct { unsigned __attr; } pthread_condattr_t;
+#define __DEFINED_pthread_condattr_t
+#endif
+
+#if defined(__NEED_pthread_barrierattr_t) && !defined(__DEFINED_pthread_barrierattr_t)
+typedef struct { unsigned __attr; } pthread_barrierattr_t;
+#define __DEFINED_pthread_barrierattr_t
+#endif
+
+#if defined(__NEED_pthread_rwlockattr_t) && !defined(__DEFINED_pthread_rwlockattr_t)
+typedef struct { unsigned __attr[2]; } pthread_rwlockattr_t;
+#define __DEFINED_pthread_rwlockattr_t
+#endif
+
+
+#if defined(__NEED_FILE) && !defined(__DEFINED_FILE)
+typedef struct _IO_FILE FILE;
+#define __DEFINED_FILE
+#endif
+
+
+#if defined(__NEED_mbstate_t) && !defined(__DEFINED_mbstate_t)
+typedef struct __mbstate_t { unsigned __opaque1, __opaque2; } mbstate_t;
+#define __DEFINED_mbstate_t
+#endif
+
+
+#if defined(__NEED_locale_t) && !defined(__DEFINED_locale_t)
+typedef struct __locale_struct * locale_t;
+#define __DEFINED_locale_t
+#endif
+
+
+#if defined(__NEED_sigset_t) && !defined(__DEFINED_sigset_t)
+typedef struct __sigset_t { unsigned long __bits[128/sizeof(long)]; } sigset_t;
+#define __DEFINED_sigset_t
+#endif
+
+
+#if defined(__NEED_struct_iovec) && !defined(__DEFINED_struct_iovec)
+struct iovec { void *iov_base; size_t iov_len; };
+#define __DEFINED_struct_iovec
+#endif
+
+
+#if defined(__NEED_socklen_t) && !defined(__DEFINED_socklen_t)
+typedef unsigned socklen_t;
+#define __DEFINED_socklen_t
+#endif
+
+#if defined(__NEED_sa_family_t) && !defined(__DEFINED_sa_family_t)
+typedef unsigned short sa_family_t;
+#define __DEFINED_sa_family_t
+#endif
+
+
+#undef _Addr
+#undef _Int64
+#undef _Reg
diff --git a/src/third_party/musl/arch/i386/bits/alltypes.h b/src/third_party/musl/arch/i386/bits/alltypes.h
new file mode 100644
index 0000000..6bbc3ab
--- /dev/null
+++ b/src/third_party/musl/arch/i386/bits/alltypes.h
@@ -0,0 +1,433 @@
+#define _Addr int
+#define _Int64 long long
+#define _Reg int
+
+#if __GNUC__ >= 3
+#if defined(__NEED_va_list) && !defined(__DEFINED_va_list)
+typedef __builtin_va_list va_list;
+#define __DEFINED_va_list
+#endif
+
+#if defined(__NEED___isoc_va_list) && !defined(__DEFINED___isoc_va_list)
+typedef __builtin_va_list __isoc_va_list;
+#define __DEFINED___isoc_va_list
+#endif
+
+#else
+#if defined(__NEED_va_list) && !defined(__DEFINED_va_list)
+typedef struct __va_list * va_list;
+#define __DEFINED_va_list
+#endif
+
+#if defined(__NEED___isoc_va_list) && !defined(__DEFINED___isoc_va_list)
+typedef struct __va_list * __isoc_va_list;
+#define __DEFINED___isoc_va_list
+#endif
+
+#endif
+
+#ifndef __cplusplus
+#ifdef __WCHAR_TYPE__
+#if defined(__NEED_wchar_t) && !defined(__DEFINED_wchar_t)
+typedef __WCHAR_TYPE__ wchar_t;
+#define __DEFINED_wchar_t
+#endif
+
+#else
+#if defined(__NEED_wchar_t) && !defined(__DEFINED_wchar_t)
+typedef long wchar_t;
+#define __DEFINED_wchar_t
+#endif
+
+#endif
+#endif
+
+#if defined(__FLT_EVAL_METHOD__) && __FLT_EVAL_METHOD__ == 0
+#if defined(__NEED_float_t) && !defined(__DEFINED_float_t)
+typedef float float_t;
+#define __DEFINED_float_t
+#endif
+
+#if defined(__NEED_double_t) && !defined(__DEFINED_double_t)
+typedef double double_t;
+#define __DEFINED_double_t
+#endif
+
+#else
+#if defined(__NEED_float_t) && !defined(__DEFINED_float_t)
+typedef long double float_t;
+#define __DEFINED_float_t
+#endif
+
+#if defined(__NEED_double_t) && !defined(__DEFINED_double_t)
+typedef long double double_t;
+#define __DEFINED_double_t
+#endif
+
+#endif
+
+#if !defined(__cplusplus)
+#if defined(__NEED_max_align_t) && !defined(__DEFINED_max_align_t)
+typedef struct { _Alignas(8) long long __ll; long double __ld; } max_align_t;
+#define __DEFINED_max_align_t
+#endif
+
+#elif defined(__GNUC__)
+#if defined(__NEED_max_align_t) && !defined(__DEFINED_max_align_t)
+typedef struct { __attribute__((__aligned__(8))) long long __ll; long double __ld; } max_align_t;
+#define __DEFINED_max_align_t
+#endif
+
+#else
+#if defined(__NEED_max_align_t) && !defined(__DEFINED_max_align_t)
+typedef struct { alignas(8) long long __ll; long double __ld; } max_align_t;
+#define __DEFINED_max_align_t
+#endif
+
+#endif
+
+#if defined(__NEED_time_t) && !defined(__DEFINED_time_t)
+typedef long time_t;
+#define __DEFINED_time_t
+#endif
+
+#if defined(__NEED_suseconds_t) && !defined(__DEFINED_suseconds_t)
+typedef long suseconds_t;
+#define __DEFINED_suseconds_t
+#endif
+
+
+#if defined(__NEED_pthread_attr_t) && !defined(__DEFINED_pthread_attr_t)
+typedef struct { union { int __i[9]; volatile int __vi[9]; unsigned __s[9]; } __u; } pthread_attr_t;
+#define __DEFINED_pthread_attr_t
+#endif
+
+#if defined(__NEED_pthread_mutex_t) && !defined(__DEFINED_pthread_mutex_t)
+typedef struct { union { int __i[6]; volatile int __vi[6]; volatile void *volatile __p[6]; } __u; } pthread_mutex_t;
+#define __DEFINED_pthread_mutex_t
+#endif
+
+#if defined(__NEED_mtx_t) && !defined(__DEFINED_mtx_t)
+typedef struct { union { int __i[6]; volatile int __vi[6]; volatile void *volatile __p[6]; } __u; } mtx_t;
+#define __DEFINED_mtx_t
+#endif
+
+#if defined(__NEED_pthread_cond_t) && !defined(__DEFINED_pthread_cond_t)
+typedef struct { union { int __i[12]; volatile int __vi[12]; void *__p[12]; } __u; } pthread_cond_t;
+#define __DEFINED_pthread_cond_t
+#endif
+
+#if defined(__NEED_cnd_t) && !defined(__DEFINED_cnd_t)
+typedef struct { union { int __i[12]; volatile int __vi[12]; void *__p[12]; } __u; } cnd_t;
+#define __DEFINED_cnd_t
+#endif
+
+#if defined(__NEED_pthread_rwlock_t) && !defined(__DEFINED_pthread_rwlock_t)
+typedef struct { union { int __i[8]; volatile int __vi[8]; void *__p[8]; } __u; } pthread_rwlock_t;
+#define __DEFINED_pthread_rwlock_t
+#endif
+
+#if defined(__NEED_pthread_barrier_t) && !defined(__DEFINED_pthread_barrier_t)
+typedef struct { union { int __i[5]; volatile int __vi[5]; void *__p[5]; } __u; } pthread_barrier_t;
+#define __DEFINED_pthread_barrier_t
+#endif
+
+#if defined(__NEED_size_t) && !defined(__DEFINED_size_t)
+typedef unsigned _Addr size_t;
+#define __DEFINED_size_t
+#endif
+
+#if defined(__NEED_uintptr_t) && !defined(__DEFINED_uintptr_t)
+typedef unsigned _Addr uintptr_t;
+#define __DEFINED_uintptr_t
+#endif
+
+#if defined(__NEED_ptrdiff_t) && !defined(__DEFINED_ptrdiff_t)
+typedef _Addr ptrdiff_t;
+#define __DEFINED_ptrdiff_t
+#endif
+
+#if defined(__NEED_ssize_t) && !defined(__DEFINED_ssize_t)
+typedef _Addr ssize_t;
+#define __DEFINED_ssize_t
+#endif
+
+#if defined(__NEED_intptr_t) && !defined(__DEFINED_intptr_t)
+typedef _Addr intptr_t;
+#define __DEFINED_intptr_t
+#endif
+
+#if defined(__NEED_regoff_t) && !defined(__DEFINED_regoff_t)
+typedef _Addr regoff_t;
+#define __DEFINED_regoff_t
+#endif
+
+#if defined(__NEED_register_t) && !defined(__DEFINED_register_t)
+typedef _Reg register_t;
+#define __DEFINED_register_t
+#endif
+
+
+#if defined(__NEED_int8_t) && !defined(__DEFINED_int8_t)
+typedef signed char     int8_t;
+#define __DEFINED_int8_t
+#endif
+
+#if defined(__NEED_int16_t) && !defined(__DEFINED_int16_t)
+typedef signed short    int16_t;
+#define __DEFINED_int16_t
+#endif
+
+#if defined(__NEED_int32_t) && !defined(__DEFINED_int32_t)
+typedef signed int      int32_t;
+#define __DEFINED_int32_t
+#endif
+
+#if defined(__NEED_int64_t) && !defined(__DEFINED_int64_t)
+typedef signed _Int64   int64_t;
+#define __DEFINED_int64_t
+#endif
+
+#if defined(__NEED_intmax_t) && !defined(__DEFINED_intmax_t)
+typedef signed _Int64   intmax_t;
+#define __DEFINED_intmax_t
+#endif
+
+#if defined(__NEED_uint8_t) && !defined(__DEFINED_uint8_t)
+typedef unsigned char   uint8_t;
+#define __DEFINED_uint8_t
+#endif
+
+#if defined(__NEED_uint16_t) && !defined(__DEFINED_uint16_t)
+typedef unsigned short  uint16_t;
+#define __DEFINED_uint16_t
+#endif
+
+#if defined(__NEED_uint32_t) && !defined(__DEFINED_uint32_t)
+typedef unsigned int    uint32_t;
+#define __DEFINED_uint32_t
+#endif
+
+#if defined(__NEED_uint64_t) && !defined(__DEFINED_uint64_t)
+typedef unsigned _Int64 uint64_t;
+#define __DEFINED_uint64_t
+#endif
+
+#if defined(__NEED_u_int64_t) && !defined(__DEFINED_u_int64_t)
+typedef unsigned _Int64 u_int64_t;
+#define __DEFINED_u_int64_t
+#endif
+
+#if defined(__NEED_uintmax_t) && !defined(__DEFINED_uintmax_t)
+typedef unsigned _Int64 uintmax_t;
+#define __DEFINED_uintmax_t
+#endif
+
+
+#if defined(__NEED_mode_t) && !defined(__DEFINED_mode_t)
+typedef unsigned mode_t;
+#define __DEFINED_mode_t
+#endif
+
+#if defined(__NEED_nlink_t) && !defined(__DEFINED_nlink_t)
+typedef unsigned _Reg nlink_t;
+#define __DEFINED_nlink_t
+#endif
+
+#if defined(__NEED_off_t) && !defined(__DEFINED_off_t)
+typedef _Int64 off_t;
+#define __DEFINED_off_t
+#endif
+
+#if defined(__NEED_ino_t) && !defined(__DEFINED_ino_t)
+typedef unsigned _Int64 ino_t;
+#define __DEFINED_ino_t
+#endif
+
+#if defined(__NEED_dev_t) && !defined(__DEFINED_dev_t)
+typedef unsigned _Int64 dev_t;
+#define __DEFINED_dev_t
+#endif
+
+#if defined(__NEED_blksize_t) && !defined(__DEFINED_blksize_t)
+typedef long blksize_t;
+#define __DEFINED_blksize_t
+#endif
+
+#if defined(__NEED_blkcnt_t) && !defined(__DEFINED_blkcnt_t)
+typedef _Int64 blkcnt_t;
+#define __DEFINED_blkcnt_t
+#endif
+
+#if defined(__NEED_fsblkcnt_t) && !defined(__DEFINED_fsblkcnt_t)
+typedef unsigned _Int64 fsblkcnt_t;
+#define __DEFINED_fsblkcnt_t
+#endif
+
+#if defined(__NEED_fsfilcnt_t) && !defined(__DEFINED_fsfilcnt_t)
+typedef unsigned _Int64 fsfilcnt_t;
+#define __DEFINED_fsfilcnt_t
+#endif
+
+
+#if defined(__NEED_wint_t) && !defined(__DEFINED_wint_t)
+typedef unsigned wint_t;
+#define __DEFINED_wint_t
+#endif
+
+#if defined(__NEED_wctype_t) && !defined(__DEFINED_wctype_t)
+typedef unsigned long wctype_t;
+#define __DEFINED_wctype_t
+#endif
+
+
+#if defined(__NEED_timer_t) && !defined(__DEFINED_timer_t)
+typedef void * timer_t;
+#define __DEFINED_timer_t
+#endif
+
+#if defined(__NEED_clockid_t) && !defined(__DEFINED_clockid_t)
+typedef int clockid_t;
+#define __DEFINED_clockid_t
+#endif
+
+#if defined(__NEED_clock_t) && !defined(__DEFINED_clock_t)
+typedef long clock_t;
+#define __DEFINED_clock_t
+#endif
+
+#if defined(__NEED_struct_timeval) && !defined(__DEFINED_struct_timeval)
+struct timeval { time_t tv_sec; suseconds_t tv_usec; };
+#define __DEFINED_struct_timeval
+#endif
+
+#if defined(__NEED_struct_timespec) && !defined(__DEFINED_struct_timespec)
+struct timespec { time_t tv_sec; long tv_nsec; };
+#define __DEFINED_struct_timespec
+#endif
+
+
+#if defined(__NEED_pid_t) && !defined(__DEFINED_pid_t)
+typedef int pid_t;
+#define __DEFINED_pid_t
+#endif
+
+#if defined(__NEED_id_t) && !defined(__DEFINED_id_t)
+typedef unsigned id_t;
+#define __DEFINED_id_t
+#endif
+
+#if defined(__NEED_uid_t) && !defined(__DEFINED_uid_t)
+typedef unsigned uid_t;
+#define __DEFINED_uid_t
+#endif
+
+#if defined(__NEED_gid_t) && !defined(__DEFINED_gid_t)
+typedef unsigned gid_t;
+#define __DEFINED_gid_t
+#endif
+
+#if defined(__NEED_key_t) && !defined(__DEFINED_key_t)
+typedef int key_t;
+#define __DEFINED_key_t
+#endif
+
+#if defined(__NEED_useconds_t) && !defined(__DEFINED_useconds_t)
+typedef unsigned useconds_t;
+#define __DEFINED_useconds_t
+#endif
+
+
+#ifdef __cplusplus
+#if defined(__NEED_pthread_t) && !defined(__DEFINED_pthread_t)
+typedef unsigned long pthread_t;
+#define __DEFINED_pthread_t
+#endif
+
+#else
+#if defined(__NEED_pthread_t) && !defined(__DEFINED_pthread_t)
+typedef struct __pthread * pthread_t;
+#define __DEFINED_pthread_t
+#endif
+
+#endif
+#if defined(__NEED_pthread_once_t) && !defined(__DEFINED_pthread_once_t)
+typedef int pthread_once_t;
+#define __DEFINED_pthread_once_t
+#endif
+
+#if defined(__NEED_pthread_key_t) && !defined(__DEFINED_pthread_key_t)
+typedef unsigned pthread_key_t;
+#define __DEFINED_pthread_key_t
+#endif
+
+#if defined(__NEED_pthread_spinlock_t) && !defined(__DEFINED_pthread_spinlock_t)
+typedef int pthread_spinlock_t;
+#define __DEFINED_pthread_spinlock_t
+#endif
+
+#if defined(__NEED_pthread_mutexattr_t) && !defined(__DEFINED_pthread_mutexattr_t)
+typedef struct { unsigned __attr; } pthread_mutexattr_t;
+#define __DEFINED_pthread_mutexattr_t
+#endif
+
+#if defined(__NEED_pthread_condattr_t) && !defined(__DEFINED_pthread_condattr_t)
+typedef struct { unsigned __attr; } pthread_condattr_t;
+#define __DEFINED_pthread_condattr_t
+#endif
+
+#if defined(__NEED_pthread_barrierattr_t) && !defined(__DEFINED_pthread_barrierattr_t)
+typedef struct { unsigned __attr; } pthread_barrierattr_t;
+#define __DEFINED_pthread_barrierattr_t
+#endif
+
+#if defined(__NEED_pthread_rwlockattr_t) && !defined(__DEFINED_pthread_rwlockattr_t)
+typedef struct { unsigned __attr[2]; } pthread_rwlockattr_t;
+#define __DEFINED_pthread_rwlockattr_t
+#endif
+
+
+#if defined(__NEED_FILE) && !defined(__DEFINED_FILE)
+typedef struct _IO_FILE FILE;
+#define __DEFINED_FILE
+#endif
+
+
+#if defined(__NEED_mbstate_t) && !defined(__DEFINED_mbstate_t)
+typedef struct __mbstate_t { unsigned __opaque1, __opaque2; } mbstate_t;
+#define __DEFINED_mbstate_t
+#endif
+
+
+#if defined(__NEED_locale_t) && !defined(__DEFINED_locale_t)
+typedef struct __locale_struct * locale_t;
+#define __DEFINED_locale_t
+#endif
+
+
+#if defined(__NEED_sigset_t) && !defined(__DEFINED_sigset_t)
+typedef struct __sigset_t { unsigned long __bits[128/sizeof(long)]; } sigset_t;
+#define __DEFINED_sigset_t
+#endif
+
+
+#if defined(__NEED_struct_iovec) && !defined(__DEFINED_struct_iovec)
+struct iovec { void *iov_base; size_t iov_len; };
+#define __DEFINED_struct_iovec
+#endif
+
+
+#if defined(__NEED_socklen_t) && !defined(__DEFINED_socklen_t)
+typedef unsigned socklen_t;
+#define __DEFINED_socklen_t
+#endif
+
+#if defined(__NEED_sa_family_t) && !defined(__DEFINED_sa_family_t)
+typedef unsigned short sa_family_t;
+#define __DEFINED_sa_family_t
+#endif
+
+
+#undef _Addr
+#undef _Int64
+#undef _Reg
diff --git a/src/third_party/musl/arch/mips/bits/alltypes.h b/src/third_party/musl/arch/mips/bits/alltypes.h
new file mode 100644
index 0000000..2d70952
--- /dev/null
+++ b/src/third_party/musl/arch/mips/bits/alltypes.h
@@ -0,0 +1,385 @@
+#define _Addr int
+#define _Int64 long long
+#define _Reg int
+
+#if defined(__NEED_va_list) && !defined(__DEFINED_va_list)
+typedef __builtin_va_list va_list;
+#define __DEFINED_va_list
+#endif
+
+#if defined(__NEED___isoc_va_list) && !defined(__DEFINED___isoc_va_list)
+typedef __builtin_va_list __isoc_va_list;
+#define __DEFINED___isoc_va_list
+#endif
+
+
+#ifndef __cplusplus
+#if defined(__NEED_wchar_t) && !defined(__DEFINED_wchar_t)
+typedef int wchar_t;
+#define __DEFINED_wchar_t
+#endif
+
+#endif
+
+#if defined(__NEED_float_t) && !defined(__DEFINED_float_t)
+typedef float float_t;
+#define __DEFINED_float_t
+#endif
+
+#if defined(__NEED_double_t) && !defined(__DEFINED_double_t)
+typedef double double_t;
+#define __DEFINED_double_t
+#endif
+
+
+#if defined(__NEED_max_align_t) && !defined(__DEFINED_max_align_t)
+typedef struct { long long __ll; long double __ld; } max_align_t;
+#define __DEFINED_max_align_t
+#endif
+
+
+#if defined(__NEED_time_t) && !defined(__DEFINED_time_t)
+typedef long time_t;
+#define __DEFINED_time_t
+#endif
+
+#if defined(__NEED_suseconds_t) && !defined(__DEFINED_suseconds_t)
+typedef long suseconds_t;
+#define __DEFINED_suseconds_t
+#endif
+
+
+#if defined(__NEED_pthread_attr_t) && !defined(__DEFINED_pthread_attr_t)
+typedef struct { union { int __i[9]; volatile int __vi[9]; unsigned __s[9]; } __u; } pthread_attr_t;
+#define __DEFINED_pthread_attr_t
+#endif
+
+#if defined(__NEED_pthread_mutex_t) && !defined(__DEFINED_pthread_mutex_t)
+typedef struct { union { int __i[6]; volatile int __vi[6]; volatile void *volatile __p[6]; } __u; } pthread_mutex_t;
+#define __DEFINED_pthread_mutex_t
+#endif
+
+#if defined(__NEED_mtx_t) && !defined(__DEFINED_mtx_t)
+typedef struct { union { int __i[6]; volatile int __vi[6]; volatile void *volatile __p[6]; } __u; } mtx_t;
+#define __DEFINED_mtx_t
+#endif
+
+#if defined(__NEED_pthread_cond_t) && !defined(__DEFINED_pthread_cond_t)
+typedef struct { union { int __i[12]; volatile int __vi[12]; void *__p[12]; } __u; } pthread_cond_t;
+#define __DEFINED_pthread_cond_t
+#endif
+
+#if defined(__NEED_cnd_t) && !defined(__DEFINED_cnd_t)
+typedef struct { union { int __i[12]; volatile int __vi[12]; void *__p[12]; } __u; } cnd_t;
+#define __DEFINED_cnd_t
+#endif
+
+#if defined(__NEED_pthread_rwlock_t) && !defined(__DEFINED_pthread_rwlock_t)
+typedef struct { union { int __i[8]; volatile int __vi[8]; void *__p[8]; } __u; } pthread_rwlock_t;
+#define __DEFINED_pthread_rwlock_t
+#endif
+
+#if defined(__NEED_pthread_barrier_t) && !defined(__DEFINED_pthread_barrier_t)
+typedef struct { union { int __i[5]; volatile int __vi[5]; void *__p[5]; } __u; } pthread_barrier_t;
+#define __DEFINED_pthread_barrier_t
+#endif
+
+#if defined(__NEED_size_t) && !defined(__DEFINED_size_t)
+typedef unsigned _Addr size_t;
+#define __DEFINED_size_t
+#endif
+
+#if defined(__NEED_uintptr_t) && !defined(__DEFINED_uintptr_t)
+typedef unsigned _Addr uintptr_t;
+#define __DEFINED_uintptr_t
+#endif
+
+#if defined(__NEED_ptrdiff_t) && !defined(__DEFINED_ptrdiff_t)
+typedef _Addr ptrdiff_t;
+#define __DEFINED_ptrdiff_t
+#endif
+
+#if defined(__NEED_ssize_t) && !defined(__DEFINED_ssize_t)
+typedef _Addr ssize_t;
+#define __DEFINED_ssize_t
+#endif
+
+#if defined(__NEED_intptr_t) && !defined(__DEFINED_intptr_t)
+typedef _Addr intptr_t;
+#define __DEFINED_intptr_t
+#endif
+
+#if defined(__NEED_regoff_t) && !defined(__DEFINED_regoff_t)
+typedef _Addr regoff_t;
+#define __DEFINED_regoff_t
+#endif
+
+#if defined(__NEED_register_t) && !defined(__DEFINED_register_t)
+typedef _Reg register_t;
+#define __DEFINED_register_t
+#endif
+
+
+#if defined(__NEED_int8_t) && !defined(__DEFINED_int8_t)
+typedef signed char     int8_t;
+#define __DEFINED_int8_t
+#endif
+
+#if defined(__NEED_int16_t) && !defined(__DEFINED_int16_t)
+typedef signed short    int16_t;
+#define __DEFINED_int16_t
+#endif
+
+#if defined(__NEED_int32_t) && !defined(__DEFINED_int32_t)
+typedef signed int      int32_t;
+#define __DEFINED_int32_t
+#endif
+
+#if defined(__NEED_int64_t) && !defined(__DEFINED_int64_t)
+typedef signed _Int64   int64_t;
+#define __DEFINED_int64_t
+#endif
+
+#if defined(__NEED_intmax_t) && !defined(__DEFINED_intmax_t)
+typedef signed _Int64   intmax_t;
+#define __DEFINED_intmax_t
+#endif
+
+#if defined(__NEED_uint8_t) && !defined(__DEFINED_uint8_t)
+typedef unsigned char   uint8_t;
+#define __DEFINED_uint8_t
+#endif
+
+#if defined(__NEED_uint16_t) && !defined(__DEFINED_uint16_t)
+typedef unsigned short  uint16_t;
+#define __DEFINED_uint16_t
+#endif
+
+#if defined(__NEED_uint32_t) && !defined(__DEFINED_uint32_t)
+typedef unsigned int    uint32_t;
+#define __DEFINED_uint32_t
+#endif
+
+#if defined(__NEED_uint64_t) && !defined(__DEFINED_uint64_t)
+typedef unsigned _Int64 uint64_t;
+#define __DEFINED_uint64_t
+#endif
+
+#if defined(__NEED_u_int64_t) && !defined(__DEFINED_u_int64_t)
+typedef unsigned _Int64 u_int64_t;
+#define __DEFINED_u_int64_t
+#endif
+
+#if defined(__NEED_uintmax_t) && !defined(__DEFINED_uintmax_t)
+typedef unsigned _Int64 uintmax_t;
+#define __DEFINED_uintmax_t
+#endif
+
+
+#if defined(__NEED_mode_t) && !defined(__DEFINED_mode_t)
+typedef unsigned mode_t;
+#define __DEFINED_mode_t
+#endif
+
+#if defined(__NEED_nlink_t) && !defined(__DEFINED_nlink_t)
+typedef unsigned _Reg nlink_t;
+#define __DEFINED_nlink_t
+#endif
+
+#if defined(__NEED_off_t) && !defined(__DEFINED_off_t)
+typedef _Int64 off_t;
+#define __DEFINED_off_t
+#endif
+
+#if defined(__NEED_ino_t) && !defined(__DEFINED_ino_t)
+typedef unsigned _Int64 ino_t;
+#define __DEFINED_ino_t
+#endif
+
+#if defined(__NEED_dev_t) && !defined(__DEFINED_dev_t)
+typedef unsigned _Int64 dev_t;
+#define __DEFINED_dev_t
+#endif
+
+#if defined(__NEED_blksize_t) && !defined(__DEFINED_blksize_t)
+typedef long blksize_t;
+#define __DEFINED_blksize_t
+#endif
+
+#if defined(__NEED_blkcnt_t) && !defined(__DEFINED_blkcnt_t)
+typedef _Int64 blkcnt_t;
+#define __DEFINED_blkcnt_t
+#endif
+
+#if defined(__NEED_fsblkcnt_t) && !defined(__DEFINED_fsblkcnt_t)
+typedef unsigned _Int64 fsblkcnt_t;
+#define __DEFINED_fsblkcnt_t
+#endif
+
+#if defined(__NEED_fsfilcnt_t) && !defined(__DEFINED_fsfilcnt_t)
+typedef unsigned _Int64 fsfilcnt_t;
+#define __DEFINED_fsfilcnt_t
+#endif
+
+
+#if defined(__NEED_wint_t) && !defined(__DEFINED_wint_t)
+typedef unsigned wint_t;
+#define __DEFINED_wint_t
+#endif
+
+#if defined(__NEED_wctype_t) && !defined(__DEFINED_wctype_t)
+typedef unsigned long wctype_t;
+#define __DEFINED_wctype_t
+#endif
+
+
+#if defined(__NEED_timer_t) && !defined(__DEFINED_timer_t)
+typedef void * timer_t;
+#define __DEFINED_timer_t
+#endif
+
+#if defined(__NEED_clockid_t) && !defined(__DEFINED_clockid_t)
+typedef int clockid_t;
+#define __DEFINED_clockid_t
+#endif
+
+#if defined(__NEED_clock_t) && !defined(__DEFINED_clock_t)
+typedef long clock_t;
+#define __DEFINED_clock_t
+#endif
+
+#if defined(__NEED_struct_timeval) && !defined(__DEFINED_struct_timeval)
+struct timeval { time_t tv_sec; suseconds_t tv_usec; };
+#define __DEFINED_struct_timeval
+#endif
+
+#if defined(__NEED_struct_timespec) && !defined(__DEFINED_struct_timespec)
+struct timespec { time_t tv_sec; long tv_nsec; };
+#define __DEFINED_struct_timespec
+#endif
+
+
+#if defined(__NEED_pid_t) && !defined(__DEFINED_pid_t)
+typedef int pid_t;
+#define __DEFINED_pid_t
+#endif
+
+#if defined(__NEED_id_t) && !defined(__DEFINED_id_t)
+typedef unsigned id_t;
+#define __DEFINED_id_t
+#endif
+
+#if defined(__NEED_uid_t) && !defined(__DEFINED_uid_t)
+typedef unsigned uid_t;
+#define __DEFINED_uid_t
+#endif
+
+#if defined(__NEED_gid_t) && !defined(__DEFINED_gid_t)
+typedef unsigned gid_t;
+#define __DEFINED_gid_t
+#endif
+
+#if defined(__NEED_key_t) && !defined(__DEFINED_key_t)
+typedef int key_t;
+#define __DEFINED_key_t
+#endif
+
+#if defined(__NEED_useconds_t) && !defined(__DEFINED_useconds_t)
+typedef unsigned useconds_t;
+#define __DEFINED_useconds_t
+#endif
+
+
+#ifdef __cplusplus
+#if defined(__NEED_pthread_t) && !defined(__DEFINED_pthread_t)
+typedef unsigned long pthread_t;
+#define __DEFINED_pthread_t
+#endif
+
+#else
+#if defined(__NEED_pthread_t) && !defined(__DEFINED_pthread_t)
+typedef struct __pthread * pthread_t;
+#define __DEFINED_pthread_t
+#endif
+
+#endif
+#if defined(__NEED_pthread_once_t) && !defined(__DEFINED_pthread_once_t)
+typedef int pthread_once_t;
+#define __DEFINED_pthread_once_t
+#endif
+
+#if defined(__NEED_pthread_key_t) && !defined(__DEFINED_pthread_key_t)
+typedef unsigned pthread_key_t;
+#define __DEFINED_pthread_key_t
+#endif
+
+#if defined(__NEED_pthread_spinlock_t) && !defined(__DEFINED_pthread_spinlock_t)
+typedef int pthread_spinlock_t;
+#define __DEFINED_pthread_spinlock_t
+#endif
+
+#if defined(__NEED_pthread_mutexattr_t) && !defined(__DEFINED_pthread_mutexattr_t)
+typedef struct { unsigned __attr; } pthread_mutexattr_t;
+#define __DEFINED_pthread_mutexattr_t
+#endif
+
+#if defined(__NEED_pthread_condattr_t) && !defined(__DEFINED_pthread_condattr_t)
+typedef struct { unsigned __attr; } pthread_condattr_t;
+#define __DEFINED_pthread_condattr_t
+#endif
+
+#if defined(__NEED_pthread_barrierattr_t) && !defined(__DEFINED_pthread_barrierattr_t)
+typedef struct { unsigned __attr; } pthread_barrierattr_t;
+#define __DEFINED_pthread_barrierattr_t
+#endif
+
+#if defined(__NEED_pthread_rwlockattr_t) && !defined(__DEFINED_pthread_rwlockattr_t)
+typedef struct { unsigned __attr[2]; } pthread_rwlockattr_t;
+#define __DEFINED_pthread_rwlockattr_t
+#endif
+
+
+#if defined(__NEED_FILE) && !defined(__DEFINED_FILE)
+typedef struct _IO_FILE FILE;
+#define __DEFINED_FILE
+#endif
+
+
+#if defined(__NEED_mbstate_t) && !defined(__DEFINED_mbstate_t)
+typedef struct __mbstate_t { unsigned __opaque1, __opaque2; } mbstate_t;
+#define __DEFINED_mbstate_t
+#endif
+
+
+#if defined(__NEED_locale_t) && !defined(__DEFINED_locale_t)
+typedef struct __locale_struct * locale_t;
+#define __DEFINED_locale_t
+#endif
+
+
+#if defined(__NEED_sigset_t) && !defined(__DEFINED_sigset_t)
+typedef struct __sigset_t { unsigned long __bits[128/sizeof(long)]; } sigset_t;
+#define __DEFINED_sigset_t
+#endif
+
+
+#if defined(__NEED_struct_iovec) && !defined(__DEFINED_struct_iovec)
+struct iovec { void *iov_base; size_t iov_len; };
+#define __DEFINED_struct_iovec
+#endif
+
+
+#if defined(__NEED_socklen_t) && !defined(__DEFINED_socklen_t)
+typedef unsigned socklen_t;
+#define __DEFINED_socklen_t
+#endif
+
+#if defined(__NEED_sa_family_t) && !defined(__DEFINED_sa_family_t)
+typedef unsigned short sa_family_t;
+#define __DEFINED_sa_family_t
+#endif
+
+
+#undef _Addr
+#undef _Int64
+#undef _Reg
diff --git a/src/third_party/musl/generated/include/bits/alltypes.h b/src/third_party/musl/arch/x86_64/bits/alltypes.h
similarity index 100%
rename from src/third_party/musl/generated/include/bits/alltypes.h
rename to src/third_party/musl/arch/x86_64/bits/alltypes.h
diff --git a/src/third_party/musl/generate.sh b/src/third_party/musl/generate.sh
new file mode 100755
index 0000000..a3d7285
--- /dev/null
+++ b/src/third_party/musl/generate.sh
@@ -0,0 +1,8 @@
+#!/bin/bash
+
+sed -f tools/mkalltypes.sed arch/aarch64/bits/alltypes.h.in  include/alltypes.h.in > arch/aarch64/bits/alltypes.h
+sed -f tools/mkalltypes.sed arch/arm/bits/alltypes.h.in include/alltypes.h.in > arch/arm/bits/alltypes.h
+sed -f tools/mkalltypes.sed arch/x86_64/bits/alltypes.h.in include/alltypes.h.in > arch/x86_64/bits/alltypes.h
+sed -f tools/mkalltypes.sed arch/i386/bits/alltypes.h.in include/alltypes.h.in > arch/i386/bits/alltypes.h
+sed -f tools/mkalltypes.sed arch/mips/bits/alltypes.h.in include/alltypes.h.in > arch/mips/bits/alltypes.h
+
diff --git a/src/third_party/musl/generated/README.md b/src/third_party/musl/generated/README.md
deleted file mode 100644
index ae1726d..0000000
--- a/src/third_party/musl/generated/README.md
+++ /dev/null
@@ -1,4 +0,0 @@
-This directory contains generated headers made by
-running "./configure && make" on a stock Google Rodete machine.
-
-TODO: Generate these via the Cobalt gyp build.
diff --git a/src/third_party/musl/musl.gyp b/src/third_party/musl/musl.gyp
index 58afe2f..895e07f 100644
--- a/src/third_party/musl/musl.gyp
+++ b/src/third_party/musl/musl.gyp
@@ -57,7 +57,6 @@
         '-isystem<(DEPTH)/third_party/musl/include',
         '-isystem<(DEPTH)/third_party/musl/arch/x86_64',
         '-isystem<(DEPTH)/third_party/musl/arch/generic',
-        '-isystem<(DEPTH)/third_party/musl/generated/include',
         '-w',
       ],
       'direct_dependent_settings': {
@@ -77,19 +76,25 @@
       'conditions': [
         ['musl_arch in ["i386", "x86_64", "aarch64"]', {
           'sources': [
-            'src/fenv/<(musl_arch)/fenv.s'
+            'src/fenv/<(musl_arch)/fenv.s',
+            'src/setjmp/<(musl_arch)/setjmp.s',
+            'src/setjmp/<(musl_arch)/longjmp.s',
           ],
         }],
         ['musl_arch == "arm"', {
           'sources': [
             'src/fenv/arm/fenv.c',
-            'src/fenv/arm/fenv-hf.S'
+            'src/fenv/arm/fenv-hf.S',
+            'src/setjmp/<(musl_arch)/setjmp.s',
+            'src/setjmp/<(musl_arch)/longjmp.s',
           ],
         }],
         ['musl_arch == "mips"', {
           'sources': [
             'src/fenv/mips/fenv.S,',
-            'src/fenv/mips/fenv-sf.c'
+            'src/fenv/mips/fenv-sf.c',
+            'src/setjmp/<(musl_arch)/setjmp.S',
+            'src/setjmp/<(musl_arch)/longjmp.S',
           ],
         }],
         ['musl_arch in ["i386", "x86_64"]', {
@@ -123,6 +128,7 @@
             'src/starboard/ctype/__ctype_get_mb_cur_max.c',
             'src/starboard/errno/__errno_location.c',
             'src/starboard/exit/abort.c',
+            'src/starboard/hwcap/sethwcap.c',
             'src/starboard/locale/freelocale.c',
             'src/starboard/locale/langinfo.c',
             'src/starboard/locale/localeconv.c',
diff --git a/src/third_party/musl/src/math/rint.c b/src/third_party/musl/src/math/rint.c
index dd14bf6..54414b5 100644
--- a/src/third_party/musl/src/math/rint.c
+++ b/src/third_party/musl/src/math/rint.c
@@ -1,6 +1,7 @@
 #include <float.h>
 #include <math.h>
 #include <stdint.h>
+#include "libc.h"
 
 #if FLT_EVAL_METHOD==0 || FLT_EVAL_METHOD==1
 #define EPS DBL_EPSILON
@@ -31,3 +32,7 @@
 		return s ? -0.0 : 0;
 	return y;
 }
+
+#ifdef COBALT_MUSL_W_GLIBC_HEADERS
+weak_alias(rint_internal, rint);
+#endif  // COBALT_MUSL_W_GLIBC_HEADERS
diff --git a/src/third_party/musl/src/starboard/hwcap/sethwcap.c b/src/third_party/musl/src/starboard/hwcap/sethwcap.c
new file mode 100644
index 0000000..8f54cd6
--- /dev/null
+++ b/src/third_party/musl/src/starboard/hwcap/sethwcap.c
@@ -0,0 +1,15 @@
+#include "hwcap_impl.h"
+#include "libc.h"
+#include "starboard/cpu_features.h"
+
+size_t __hwcap;
+
+// Set __hwcap bitmask by Starboard CPU features API.
+void init_musl_hwcap() {
+  SbCPUFeatures features;
+  if (SbCPUFeaturesGet(&features)) {
+    __hwcap = features.hwcap;
+  } else {
+    __hwcap = 0;
+  }
+}
diff --git a/src/third_party/musl/src/starboard/internal/hwcap_impl.h b/src/third_party/musl/src/starboard/internal/hwcap_impl.h
new file mode 100644
index 0000000..4039e08
--- /dev/null
+++ b/src/third_party/musl/src/starboard/internal/hwcap_impl.h
@@ -0,0 +1,14 @@
+#ifndef _HWCAP_IMPL_H_
+#define _HWCAP_IMPL_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif  // __cplusplus
+
+void init_musl_hwcap();
+
+#ifdef __cplusplus
+}  // extern "C"
+#endif  // __cplusplus
+
+#endif
diff --git a/src/v8/gypfiles/toolchain.gypi b/src/v8/gypfiles/toolchain.gypi
index fce4d07..14183a9 100644
--- a/src/v8/gypfiles/toolchain.gypi
+++ b/src/v8/gypfiles/toolchain.gypi
@@ -158,12 +158,14 @@
     }],
   ],
   'target_defaults': {
-    'ldflags_host': [
-      # mksnapshot can not be compiled on host machine with default clang
-      # linker.
-      '-fuse-ld=lld',
-    ],
     'conditions': [
+      ['clang==1', {
+        'ldflags_host': [
+          # mksnapshot can not be compiled on host machine with default clang
+          # linker.
+          '-fuse-ld=lld',
+        ],
+      }],
       ['v8_target_arch=="arm"', {
         'defines': [
           'V8_TARGET_ARCH_ARM',
diff --git a/src/v8/src/builtins/builtins-regexp-gen.cc b/src/v8/src/builtins/builtins-regexp-gen.cc
index 4227c62..34e8af9 100644
--- a/src/v8/src/builtins/builtins-regexp-gen.cc
+++ b/src/v8/src/builtins/builtins-regexp-gen.cc
@@ -2022,10 +2022,7 @@
             Node* const result_fixed_array = LoadElements(result);
             Node* const match = LoadFixedArrayElement(result_fixed_array, 0);
 
-            // The match is guaranteed to be a string on the fast path.
-            CSA_ASSERT(this, IsString(match));
-
-            var_match.Bind(match);
+            var_match.Bind(ToString_Inline(context, match));
             Goto(&if_didmatch);
           }
 
diff --git a/src/v8/src/regexp/regexp-utils.cc b/src/v8/src/regexp/regexp-utils.cc
index d483125..4030ad4 100644
--- a/src/v8/src/regexp/regexp-utils.cc
+++ b/src/v8/src/regexp/regexp-utils.cc
@@ -35,7 +35,7 @@
 
 namespace {
 
-V8_INLINE bool HasInitialRegExpMap(Isolate* isolate, Handle<JSReceiver> recv) {
+V8_INLINE bool HasInitialRegExpMap(Isolate* isolate, JSReceiver* recv) {
   return recv->map() == isolate->regexp_function()->initial_map();
 }
 
@@ -46,7 +46,7 @@
                                               uint64_t value) {
   Handle<Object> value_as_object =
       isolate->factory()->NewNumberFromInt64(value);
-  if (HasInitialRegExpMap(isolate, recv)) {
+  if (HasInitialRegExpMap(isolate, *recv)) {
     JSRegExp::cast(*recv)->set_last_index(*value_as_object, SKIP_WRITE_BARRIER);
     return recv;
   } else {
@@ -57,7 +57,7 @@
 
 MaybeHandle<Object> RegExpUtils::GetLastIndex(Isolate* isolate,
                                               Handle<JSReceiver> recv) {
-  if (HasInitialRegExpMap(isolate, recv)) {
+  if (HasInitialRegExpMap(isolate, *recv)) {
     return handle(JSRegExp::cast(*recv)->last_index(), isolate);
   } else {
     return Object::GetProperty(recv, isolate->factory()->lastIndex_string());
@@ -142,9 +142,7 @@
 
   JSReceiver* recv = JSReceiver::cast(*obj);
 
-  // Check the receiver's map.
-  Handle<JSFunction> regexp_function = isolate->regexp_function();
-  if (recv->map() != regexp_function->initial_map()) return false;
+  if (!HasInitialRegExpMap(isolate, recv)) return false;
 
   // Check the receiver's prototype's map.
   Object* proto = recv->map()->prototype();
diff --git a/src/v8/src/runtime/runtime-regexp.cc b/src/v8/src/runtime/runtime-regexp.cc
index d0afcd2..135853a 100644
--- a/src/v8/src/runtime/runtime-regexp.cc
+++ b/src/v8/src/runtime/runtime-regexp.cc
@@ -1303,10 +1303,9 @@
 MUST_USE_RESULT MaybeHandle<String> RegExpReplace(Isolate* isolate,
                                                   Handle<JSRegExp> regexp,
                                                   Handle<String> string,
-                                                  Handle<Object> replace_obj) {
+                                                  Handle<String> replace) {
   // Functional fast-paths are dispatched directly by replace builtin.
   DCHECK(RegExpUtils::IsUnmodifiedRegExp(isolate, regexp));
-  DCHECK(!replace_obj->IsCallable());
 
   Factory* factory = isolate->factory();
 
@@ -1314,9 +1313,6 @@
   const bool global = (flags & JSRegExp::kGlobal) != 0;
   const bool sticky = (flags & JSRegExp::kSticky) != 0;
 
-  Handle<String> replace;
-  ASSIGN_RETURN_ON_EXCEPTION(isolate, replace,
-                             Object::ToString(isolate, replace_obj), String);
   replace = String::Flatten(replace);
 
   Handle<RegExpMatchInfo> last_match_info = isolate->regexp_last_match_info();
@@ -1411,18 +1407,23 @@
   CONVERT_ARG_HANDLE_CHECKED(String, subject, 1);
   CONVERT_ARG_HANDLE_CHECKED(RegExpMatchInfo, last_match_info, 2);
   CONVERT_ARG_HANDLE_CHECKED(JSArray, result_array, 3);
+
+  DCHECK(RegExpUtils::IsUnmodifiedRegExp(isolate, regexp));
   CHECK(result_array->HasObjectElements());
 
   subject = String::Flatten(subject);
   CHECK(regexp->GetFlags() & JSRegExp::kGlobal);
 
+  Object* result;
   if (regexp->CaptureCount() == 0) {
-    return SearchRegExpMultiple<false>(isolate, subject, regexp,
-                                       last_match_info, result_array);
+    result = SearchRegExpMultiple<false>(isolate, subject, regexp,
+                                         last_match_info, result_array);
   } else {
-    return SearchRegExpMultiple<true>(isolate, subject, regexp, last_match_info,
-                                      result_array);
+    result = SearchRegExpMultiple<true>(isolate, subject, regexp,
+                                        last_match_info, result_array);
   }
+  DCHECK(RegExpUtils::IsUnmodifiedRegExp(isolate, regexp));
+  return result;
 }
 
 RUNTIME_FUNCTION(Runtime_StringReplaceNonGlobalRegExpWithFunction) {
@@ -1737,14 +1738,6 @@
 
   string = String::Flatten(string);
 
-  // Fast-path for unmodified JSRegExps.
-  if (RegExpUtils::IsUnmodifiedRegExp(isolate, recv)) {
-    RETURN_RESULT_OR_FAILURE(
-        isolate, RegExpReplace(isolate, Handle<JSRegExp>::cast(recv), string,
-                               replace_obj));
-  }
-
-  const uint32_t length = string->length();
   const bool functional_replace = replace_obj->IsCallable();
 
   Handle<String> replace;
@@ -1753,6 +1746,21 @@
                                        Object::ToString(isolate, replace_obj));
   }
 
+  // Fast-path for unmodified JSRegExps (and non-functional replace).
+  if (RegExpUtils::IsUnmodifiedRegExp(isolate, recv)) {
+    // We should never get here with functional replace because unmodified
+    // regexp and functional replace should be fully handled in CSA code.
+    CHECK(!functional_replace);
+    Handle<Object> result;
+    ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
+        isolate, result,
+        RegExpReplace(isolate, Handle<JSRegExp>::cast(recv), string, replace));
+    DCHECK(RegExpUtils::IsUnmodifiedRegExp(isolate, recv));
+    return *result;
+  }
+
+  const uint32_t length = string->length();
+
   Handle<Object> global_obj;
   ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
       isolate, global_obj,
diff --git a/src/v8/src/wasm/baseline/liftoff-compiler.cc b/src/v8/src/wasm/baseline/liftoff-compiler.cc
index 255ee03..0acbc07 100644
--- a/src/v8/src/wasm/baseline/liftoff-compiler.cc
+++ b/src/v8/src/wasm/baseline/liftoff-compiler.cc
@@ -62,8 +62,13 @@
 
 class LiftoffCompiler {
  public:
+  // This was causing cascading build errors when compiling v8 for the older
+  // clang compilers.Some private variables of this class have their move
+  // constructor implicitly deleted. Trying to fix that causes a chain of
+  // deleting the move constructor for multiple classes.
+#if !defined(V8_OS_STARBOARD)
   MOVE_ONLY_NO_DEFAULT_CONSTRUCTOR(LiftoffCompiler);
-
+#endif
   // TODO(clemensh): Make this a template parameter.
   static constexpr wasm::Decoder::ValidateFlag validate =
       wasm::Decoder::kValidate;
diff --git a/src/v8/src/wasm/wasm-debug.cc b/src/v8/src/wasm/wasm-debug.cc
index 87995df..60366bd 100644
--- a/src/v8/src/wasm/wasm-debug.cc
+++ b/src/v8/src/wasm/wasm-debug.cc
@@ -92,7 +92,13 @@
 }
 
 class InterpreterHandle {
+  // This was causing cascading build errors when compiling v8 for the older
+  // clang compilers.Some private variables of this class have their move
+  // constructor implicitly deleted. Trying to fix that causes a chain of
+  // deleting the move constructor for multiple classes.
+#if !defined(V8_OS_STARBOARD)
   MOVE_ONLY_NO_DEFAULT_CONSTRUCTOR(InterpreterHandle);
+#endif
   Isolate* isolate_;
   const WasmModule* module_;
   WasmInterpreter interpreter_;
diff --git a/src/v8/src/x64/assembler-x64.cc b/src/v8/src/x64/assembler-x64.cc
index c8f326e..1b768de 100644
--- a/src/v8/src/x64/assembler-x64.cc
+++ b/src/v8/src/x64/assembler-x64.cc
@@ -36,9 +36,10 @@
 
 namespace {
 
-#if !V8_LIBC_MSVCRT
-
-V8_INLINE uint64_t _xgetbv(unsigned int xcr) {
+V8_INLINE uint64_t xgetbv(unsigned int xcr) {
+#if V8_LIBC_MSVCRT
+  return _xgetbv(xcr);
+#else
   unsigned eax, edx;
   // Check xgetbv; this uses a .byte sequence instead of the instruction
   // directly because older assemblers do not include support for xgetbv and
@@ -46,13 +47,9 @@
   // used.
   __asm__ volatile(".byte 0x0F, 0x01, 0xD0" : "=a"(eax), "=d"(edx) : "c"(xcr));
   return static_cast<uint64_t>(eax) | (static_cast<uint64_t>(edx) << 32);
+#endif
 }
 
-#define _XCR_XFEATURE_ENABLED_MASK 0
-
-#endif  // !V8_LIBC_MSVCRT
-
-
 bool OSHasAVXSupport() {
 #if V8_OS_MACOSX
   // Mac OS X up to 10.9 has a bug where AVX transitions were indeed being
@@ -72,7 +69,7 @@
   if (kernel_version_major <= 13) return false;
 #endif  // V8_OS_MACOSX
   // Check whether OS claims to support AVX.
-  uint64_t feature_mask = _xgetbv(_XCR_XFEATURE_ENABLED_MASK);
+  uint64_t feature_mask = xgetbv(0);  // XCR_XFEATURE_ENABLED_MASK
   return (feature_mask & 0x6) == 0x6;
 }
 
